Я пытаюсь понять, как работает библиотека R DESeq2. Есть некоторый скомпилированный код C ++, и DESeq2 имеет несколько зависимостей. Чтобы сделать это, я скомпилировал этот код C ++ с флагами отладки, однако я озадачен тем, что делать дальше. Я использую R-3.4.2 и GCC-4.9.2 и работаю над CentOS 6.6.
В консоли R я недавно установил зависимости DESeq2.
> .libPaths()
[1] "~/Scratch/R-3.4.2_debug"[2] "/gpfs0/export/opt/R/3.4.2/lib64/R/library"> source("https://bioconductor.org/biocLite.R")
> biocLite("S4Vectors", lib.loc="~/Scratch/R-3.4.2_debug/", lib="~/Scratch/R-3.4.2_debug/")
> biocLite("IRanges", lib.loc="~/Scratch/R-3.4.2_debug/", lib="~/Scratch/R-3.4.2_debug/")
> biocLite("GenomicRanges", lib.loc="~/Scratch/R-3.4.2_debug/", lib="~/Scratch/R-3.4.2_debug/")
> biocLite("SummarizedExperiment", lib.loc="~/Scratch/R-3.4.2_debug/", lib="~/Scratch/R-3.4.2_debug/")
> biocLite("RcppArmadillo", lib.loc="~/Scratch/R-3.4.2_debug/", lib="~/Scratch/R-3.4.2_debug/")
> biocLite("Rcpp", lib.loc="~/Scratch/R-3.4.2_debug/", lib="~/Scratch/R-3.4.2_debug/")
Затем из терминала, в пределах ~/Scratch/DESeq2/src
Я собрал DESeq2
:
gcc -I/opt/R/3.4.2/lib64/R/include -I~/Scratch/R-3.4.2_debug/RcppArmadillo/include/ -I~/Scratch/R-3.4.2_debug/Rcpp/include/ -DNDEBUG -fpic -g -c DESeq2.cpp -o DESeq2.o
gcc -I/opt/R/3.4.2/lib64/R/include -I~/Scratch/R-3.4.2_debug/RcppArmadillo/include/ -I~/Scratch/R-3.4.2_debug/Rcpp/include/ -DNDEBUG -fpic -g -c RcppExports.cpp -o RcppExports.o
gcc -shared -L/opt/R/3.4.2/lib64/R/lib -lRlapack -lRblas -lR -g -o ~/Scratch/R-3.4.2_debug/DESeq2/libs/DESeq2.so RcppExports.o DESeq2.o
Конечный скомпилированный общий объект (DESeq2.so
) находит все зависимости.
Тогда в R невозможно найти DESeq2:
> library("DESeq2")
Error in library("DESeq2") : ‘DESeq2’ is not a valid installed package
No traceback available
Сравнивая это с предыдущей установкой DESeq2, я упускаю (на первый взгляд) важный ~/Scratch/DESeq2/R/DESeq2
, ~/Scratch/DESeq2/R/DESeq2.rdb
, ~/Scratch/DESeq2/R/DESeq2.rdx
,
Здесь есть две основные проблемы с моим пониманием:
Я не понимаю, как biocLite / install.packages собирает пакеты из BioConductor / CRAN (т.е. куда идет код R?).
Я не уверен, как пройти через код R и C ++.
ВОПРОС:
Как мне создать пакет DESeq2 так, чтобы я мог беспрепятственно проходить через код R и C ++? это кажется многообещающим, но GDB работает на R и не контролирует реальный код R (даже с вставкой в код браузера ()).
Задача ещё не решена.
Других решений пока нет …