Rtwobitlib is an R package that provides the 2bit C Library
from the UCSC Genome Browser.
See this page on
the UCSC Genome Browser website for a quick overview of the 2bit format.
The Rtwobitlib package is primarily useful to developers of other
R packages who wish to use the 2bit C library in their own C code.
C library in the C code of your packageIn order for the C/C++ compiler to find the 2bit header files during
compilation of your package, you must add Rtwobitlib to the LinkingTo
field of its DESCRIPTION file, e.g.,
LinkingTo: Rtwobitlib
Note that as of R 3.0.2 LinkingTo values can include version
specifications, e.g., LinkingTo: Rtwobitlib (>= 0.3.6).
In C or C++ code files, use standard techniques, e.g., #include
<kent/twoBit.h>. Header files are available for perusal at (enter
in an R session)
{R headers}
inc_path <- system.file(package="Rtwobitlib", "include")
list.files(inc_path, recursive=TRUE)
To compile and link your package successfully against the 2bit library
included in Rtwobitlib, you must add a src/Makevars file
with the following content:
## This file uses GNU make syntax $(shell ...) so we need to ## have "SystemRequirements: GNU make" in the DESCRIPTION file. RTWOBITLIB_LIBS=$(shell "${R_HOME}/bin${R_ARCH_BIN}/Rscript" -e \ 'Rtwobitlib::pkgconfig("PKG_LIBS")') RTWOBITLIB_CPPFLAGS=$(shell "${R_HOME}/bin${R_ARCH_BIN}/Rscript" -e \ 'Rtwobitlib::pkgconfig("PKG_CPPFLAGS")') PKG_LIBS=$(RTWOBITLIB_LIBS) PKG_CPPFLAGS=$(RTWOBITLIB_CPPFLAGS)
Note that $(shell ...) is GNU make syntax so you should add GNU make
to the SystemRequirements field of the DESCRIPTION file of your package,
e.g.,
SystemRequirements: GNU make
The reason we use $(shell echo ...) rather than back-ticks (e.g.
`echo ...`) is because the latter causes problems when, after
evaluation, PKG_LIBS and/or PKG_CPPFLAGS contain paths with
whitespaces in them.
If your package needs to add to the $PKG_LIBS variable, do so by adding
to the PKG_LIBS=$(RTWOBITLIB_LIBS) line, e.g.,
PKG_LIBS=$(RTWOBITLIB_LIBS) -L/path/to/foolib -lfoo
Rtwobitlib provides both static and dynamic versions of the 2bit
library on Linux, but only the static version on Windows and macOS.
The procedure above will link against the static version of the 2bit
library on all platforms.
Rtwobitlib provides the following R functions: twobit_read,
twobit_write, twobit_seqlengths, twobit_seqstats.
These functions are implemented in C on top of the 2bit library
bundled in the package.
Please refer to their man pages (e.g. with ?twobit_seqlengths) for more
information and some examples.
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.