<!-- README.md is generated from README.Rmd. Please edit that file -->
# syntenet <img src="man/figures/logo.png" align="right" height="138" />
<!-- badges: start -->
[![GitHub
issues](https://img.shields.io/github/issues/almeidasilvaf/syntenet)](https://github.com/almeidasilvaf/syntenet/issues)
[![Lifecycle:
stable](https://img.shields.io/badge/lifecycle-stable-brightgreen.svg)](https://lifecycle.r-lib.org/articles/stages.html#stable)
[![R-CMD-check-bioc](https://github.com/almeidasilvaf/syntenet/workflows/R-CMD-check-bioc/badge.svg)](https://github.com/almeidasilvaf/syntenet/actions)
[![Codecov test
coverage](https://codecov.io/gh/almeidasilvaf/syntenet/branch/devel/graph/badge.svg)](https://codecov.io/gh/almeidasilvaf/syntenet?branch=devel)
<!-- badges: end -->
The goal of `syntenet` is to infer synteny networks from whole-genome
protein sequence data and analyze them. Anchor pairs from synteny
analyses are treated as an undirected unweighted graph (i.e., a synteny
network), and users can perform:
- **Synteny detection** using a native implementation of the [MCScanX
algorithm](https://doi.org/10.1093/nar/gkr1293), a C++ program that
has been modified and ported to R with Rcpp. This way, users do not
need to install MCScanX beforehand, because `syntenet` has its own
implementation of the same algorithm.
- **Synteny network inference** by treating anchor pairs as edges of a
graph;
- **Network clustering** using the Infomap algorithm;
- **Phylogenomic profiling**, which consists in identifying which
species contain which clusters. This analysis can reveal highly
conserved synteny clusters and taxon-specific ones (e.g., family- and
order-specific clusters);
- **Microsynteny-based phylogeny reconstruction** with maximum
likelihood, which can be achieved by inferring a phylogeny from a
binary matrix of phylogenomic profiles with IQTREE.
## Installation instructions
Get the latest stable `R` release from
[CRAN](http://cran.r-project.org/). Then install `syntenet` from
[Bioconductor](http://bioconductor.org/) using the following code:
``` r
if (!requireNamespace("BiocManager", quietly = TRUE)) {
install.packages("BiocManager")
}
BiocManager::install("syntenet")
```
And the development version from
[GitHub](https://github.com/almeidasilvaf/syntenet) with:
``` r
BiocManager::install("almeidasilvaf/syntenet")
```
## Citation
Below is the citation output from using `citation('syntenet')` in R.
Please run this yourself to check for any updates on how to cite
**syntenet**.
``` r
print(citation('syntenet'), bibtex = TRUE)
#>
#> To cite syntenet in publications, use:
#>
#> Almeida-Silva, F., Zhao, T., Ullrich, K.K., Schranz, M.E. and Van de
#> Peer, Y. syntenet: an R/Bioconductor package for the inference and
#> analysis of synteny networks. Bioinformatics, 39(1), p.btac806.
#> (2023). https://doi.org/10.1093/bioinformatics/btac806
#>
#> A BibTeX entry for LaTeX users is
#>
#> @Article{,
#> title = {syntenet: an R/Bioconductor package for the inference and analysis of synteny networks},
#> author = {Fabricio Almeida-Silva and Tao Zhao and Kristian K. Ullrich and M. Eric Schranz and Yves {Van de Peer}},
#> journal = {Bioinformatics},
#> year = {2023},
#> volume = {39},
#> number = {1},
#> pages = {btac806},
#> url = {https://academic.oup.com/bioinformatics/article/39/1/btac806/6947985},
#> doi = {10.1093/bioinformatics/btac806},
#> }
```
Please note that `syntenet` was only made possible thanks to many other
R and bioinformatics software authors, which are cited either in the
vignettes and/or the paper(s) describing this package.
## Code of Conduct
Please note that the `syntenet` project is released with a [Contributor
Code of Conduct](http://bioconductor.org/about/code-of-conduct/). By
contributing to this project, you agree to abide by its terms.
## Development tools
- Continuous code testing is possible thanks to [GitHub
actions](https://www.tidyverse.org/blog/2020/04/usethis-1-6-0/)
through *[usethis](https://CRAN.R-project.org/package=usethis)*,
*[remotes](https://CRAN.R-project.org/package=remotes)*, and
*[rcmdcheck](https://CRAN.R-project.org/package=rcmdcheck)* customized
to use [Bioconductor’s docker
containers](https://www.bioconductor.org/help/docker/) and
*[BiocCheck](https://bioconductor.org/packages/3.15/BiocCheck)*.
- Code coverage assessment is possible thanks to
[codecov](https://codecov.io/gh) and
*[covr](https://CRAN.R-project.org/package=covr)*.
- The [documentation website](http://almeidasilvaf.github.io/syntenet)
is automatically updated thanks to
*[pkgdown](https://CRAN.R-project.org/package=pkgdown)*.
- The code is styled automatically thanks to
*[styler](https://CRAN.R-project.org/package=styler)*.
- The documentation is formatted thanks to
*[devtools](https://CRAN.R-project.org/package=devtools)* and
*[roxygen2](https://CRAN.R-project.org/package=roxygen2)*.
For more details, check the `dev` directory.
This package was developed using
*[biocthis](https://bioconductor.org/packages/3.15/biocthis)*.