1- # RcppTskit: R access to the ` tskit ` C API
1+ # ` RcppTskit ` : ` R ` access to the ` tskit C ` API
22
33## Overview
44
5+ <!-- keep in sync with DESCRIPTION file but use `` and Markdown URLs for DOIs -->
6+
57` Tskit ` enables performant storage, manipulation, and analysis of ancestral
68recombination graphs (ARGs) using succinct tree sequence encoding.
79The tree sequence encoding of an ARG is
8- described in [ Wong et al. (2024)] ( https://doi.org/10.1093/genetics/iyae100 ) ,
9- while ` tskit ` project is described in
10- [ Jeffrey et al. (2026)] ( https://doi.org/10.48550/arXiv.2602.09649 ) .
10+ described in Wong et al. (2024)
11+ <[ doi:10.1093/genetics/iyae100] ( https://doi.org/10.1093/genetics/iyae100 ) >,
12+ while ` tskit ` project is described in Jeffrey et al. (2026)
13+ <[ doi:10.48550/arXiv.2602.09649] ( https://doi.org/10.48550/arXiv.2602.09649 ) >.
1114See https://tskit.dev for project news, documentation, and tutorials.
12- ` Tskit ` provides Python, C , and Rust application programming interfaces (APIs).
13- The Python API can be called from R via the ` reticulate ` R package to
15+ ` Tskit ` provides ` Python ` , ` C ` , and ` Rust ` application programming interfaces (APIs).
16+ The ` Python ` API can be called from ` R ` via the ` reticulate ` ` R ` package to
1417seamlessly load and analyse a tree sequence, as described at
1518https://tskit.dev/tutorials/RcppTskit.html .
16- ` RcppTskit ` provides R access to the ` tskit ` C API for use cases where the
19+ ` RcppTskit ` provides ` R ` access to the ` tskit C ` API for use cases where the
1720` reticulate ` option is not optimal. For example, for high-performance and
1821low-level work with tree sequences. Currently, ` RcppTskit ` provides a limited
19- number of R functions due to the availability of extensive Python API and
22+ number of ` R ` functions due to the availability of extensive ` Python ` API and
2023the ` reticulate ` option.
2124
2225See more details on the state of the tree sequence ecosystem and aims of
2326` RcppTskit ` in [ the introduction vignette] ( https://highlanderlab.r-universe.dev/articles/RcppTskit/RcppTskit_intro.html ) ([ source] ( RcppTskit/vignettes/RcppTskit_intro.qmd ) ).
2427The vignette also shows examples on how to use ` RcppTskit ` on its own or
25- to develop new R packages.
28+ to develop new ` R ` packages that can leverage ` RcppTskit ` .
2629
2730## Status
2831
@@ -51,12 +54,12 @@ Code quality: [.
5861
59- * ` RcppTskit ` - R package ` RcppTskit ` .
62+ * ` RcppTskit ` - ` R ` package ` RcppTskit ` .
6063
6164## License
6265
@@ -66,27 +69,32 @@ Code quality: [ use:
72+ To install the published release from
73+ [ CRAN] ( https://cran.r-project.org/package=RcppTskit ) use:
7074
7175```
72- # TODO: Publish on CRAN #14
73- # https://github.com/HighlanderLab/RcppTskit/issues/14
74- # https://github.com/HighlanderLab/RcppTskit/issues/45
75- # install.packages("RcppTskit")
76- # vignette("RcppTskit_intro")
76+ install.packages("RcppTskit")
77+ vignette("RcppTskit_intro")
7778```
7879
7980To install the latest development version (possibly unstable!) from
8081[ R universe] ( https://r-universe.dev ) use:
8182
8283```
83- RUniverseAndCRAN <- c('https://highlanderlab.r-universe.dev', 'https://cloud.r-project.org')
84- install.packages('RcppTskit', repos = RUniverseAndCRAN)
84+ r_universe_and_cran <- c(
85+ "https://highlanderlab.r-universe.dev",
86+ "https://cloud.r-project.org"
87+ )
88+ install.packages("RcppTskit", repos = r_universe_and_cran)
89+ vignette("RcppTskit_intro")
8590```
8691
87- To install the latest development version (possibly unstable!) from Github use the
88- following code. Note that you will have to compile the C/C++ code and will
89- hence require the complete R build toolchain, including compilers. See
92+ To install the latest development version (possibly unstable!) from Github
93+ use the following code.
94+ Note that you will have to compile the ` C/C++ ` code and vignette,
95+ so you will require the complete build toolchain,
96+ including compilers, other ` R ` packages, and ` quarto ` .
97+ See
9098https://r-pkgs.org/setup.html#setup-tools for introduction to this topic,
9199https://cran.r-project.org/bin/windows/Rtools for Windows tools, and
92100https://mac.r-project.org/tools for macOS tools.
@@ -131,10 +139,10 @@ cd RcppTskit
131139
132140We use [ pre-commit] ( https://pre-commit.com ) hooks to ensure code quality.
133141Specifically, we use:
134- * [ air] ( https://github.com/posit-dev/air ) to format R code,
135- * [ jarl] ( https://github.com/etiennebacher/jarl ) to lint R code,
136- * [ clang-format] ( https://clang.llvm.org/docs/ClangFormat.html ) to format C/C++ code, and
137- * [ clang-tidy] ( https://clang.llvm.org/extra/clang-tidy/ ) to lint C/C++ code.
142+ * [ air] ( https://github.com/posit-dev/air ) to format ` R ` code,
143+ * [ jarl] ( https://github.com/etiennebacher/jarl ) to lint ` R ` code,
144+ * [ clang-format] ( https://clang.llvm.org/docs/ClangFormat.html ) to format ` C/C++ ` code, and
145+ * [ clang-tidy] ( https://clang.llvm.org/extra/clang-tidy/ ) to lint ` C/C++ ` code.
138146
139147To install the hooks, run:
140148
@@ -148,10 +156,10 @@ If you plan to update `tskit`, follow instructions in `extern/README.md`.
148156
149157### RcppTskit
150158
151- Then open ` RcppTskit ` package directory in your favourite R IDE
159+ Then open ` RcppTskit ` package directory in your favourite ` R ` editor
152160(Positron, RStudio, text-editor-of-your-choice, etc.) and implement your changes.
153161
154- You should routinely ` R CMD check ` your changes (in R ):
162+ You should routinely ` R CMD check ` your changes (in ` R ` ):
155163
156164```
157165# Note that the RcppTskit R package is in the RcppTskit sub-directory
0 commit comments