当前位置: 首页 > 工具软件 > Shimmer > 使用案例 >

实验记录 | Shimmer运行过程中的lib依赖问题(2)

唐修能
2023-12-01

要安装的模块有如下:

模块名称存在位置下载地址
Crypt::SSLeayexport PERL5LIB=/home/xxzhang/miniconda3/lib/5.26.2/Crypt-SSLeay-0.72/lib:$PERL5LIBhttps://cpan.metacpan.org/authors/id/N/NA/NANIS/Crypt-SSLeay-0.72.tar.gz
Data::UUID
Devel::Symdump
Term::ReadKey
Test::Cmd
Test::Pod
Test::Pod::Coverage
XML::NamespaceSupport
XML::Parser
XML::SAX
XML::SAX::Expat
XML::Simple
HTML::Parser
HTML::Tagset
LWP::UserAgent
Method::Alias
Module::Starter
Test::TAP::Model
URI

安装的步骤是:

cd   /home/xxzhang/miniconda3/lib/5.26.2/
wget https://cpan.metacpan.org/authors/id/N/NA/NANIS/Crypt-SSLeay-0.72.tar.gz
/home/xxzhang/miniconda3/bin/perl Makefile.PL

出现错误:

Can’t locate Path/Class.pm in @INC (you may need to install the Path::Class module) (@INC contains: /home/xxzhang/miniconda3/lib/5.26.2/Integrator-Module-Build-1.057/lib/Integrator/Test /home/xxzhang/miniconda3/lib/5.26.2/Module-Build-0.4231/lib/Module/ /home/xxzhang/miniconda3/lib/5.26.2/Module-Build-0.4231/lib/ /home/xxzhang/miniconda3/lib/site_perl/5.26.2/x86_64-linux-thread-multi /home/xxzhang/miniconda3/lib/site_perl/5.26.2 /home/xxzhang/miniconda3/lib/5.26.2/x86_64-linux-thread-multi /home/xxzhang/miniconda3/lib/5.26.2 .) at Makefile.PL line 8.
BEGIN failed–compilation aborted at Makefile.PL line 8.

需要先安装Path/Class.pm。

cd   /home/xxzhang/miniconda3/lib/5.26.2/
wget https://cpan.metacpan.org/authors/id/K/KW/KWILLIAMS/Path-Class-0.37.tar.gz
tar -xvzf Path-Class-0.37.tar.gz

Path-Class-0.37/
Path-Class-0.37/Build.PL
Path-Class-0.37/Changes
Path-Class-0.37/cpanfile
Path-Class-0.37/dist.ini
Path-Class-0.37/INSTALL
Path-Class-0.37/lib/
Path-Class-0.37/LICENSE
Path-Class-0.37/Makefile.PL
Path-Class-0.37/MANIFEST
Path-Class-0.37/META.yml
Path-Class-0.37/README
Path-Class-0.37/README.pod
Path-Class-0.37/SIGNATURE
Path-Class-0.37/t/
Path-Class-0.37/t/01-basic.t
Path-Class-0.37/t/02-foreign.t
Path-Class-0.37/t/03-filesystem.t
Path-Class-0.37/t/04-subclass.t
Path-Class-0.37/t/05-traverse.t
Path-Class-0.37/t/06-traverse_filt.t
Path-Class-0.37/t/07-recurseprune.t
Path-Class-0.37/t/author-critic.t
Path-Class-0.37/lib/Path/
Path-Class-0.37/lib/Path/Class/
Path-Class-0.37/lib/Path/Class.pm
Path-Class-0.37/lib/Path/Class/Dir.pm
Path-Class-0.37/lib/Path/Class/Entity.pm
Path-Class-0.37/lib/Path/Class/File.pm

export PERL5LIB=/home/xxzhang/miniconda3/lib/5.26.2/Path-Class-0.37/lib/:$PERL5LIB

解决了这个模块的问题之后,又出现了了其他的错误(缺失其他的模块,陷入了debug的无底洞):

Can’t locate Try/Tiny.pm in @INC (you may need to install the Try::Tiny module) (@INC contains: /home/xxzhang/miniconda3/lib/5.26.2/Path-Class-0.37/lib/ /home/xxzhang/miniconda3/lib/5.26.2/Path-Class-0.37/lib/Path/ /home/xxzhang/miniconda3/lib/5.26.2/Integrator-Module-Build-1.057/lib/Integrator/Test /home/xxzhang/miniconda3/lib/5.26.2/Module-Build-0.4231/lib/Module/ /home/xxzhang/miniconda3/lib/5.26.2/Module-Build-0.4231/lib/ /home/xxzhang/miniconda3/lib/site_perl/5.26.2/x86_64-linux-thread-multi /home/xxzhang/miniconda3/lib/site_perl/5.26.2 /home/xxzhang/miniconda3/lib/5.26.2/x86_64-linux-thread-multi /home/xxzhang/miniconda3/lib/5.26.2 .) at Makefile.PL line 9.
BEGIN failed–compilation aborted at Makefile.PL line 9.

想到这样下去不行。===>我们或许可以直接设置路径,不进行编译了。

export PERL5LIB=/home/xxzhang/miniconda3/lib/5.26.2/Crypt-Random-Source-SSLeay-0.02/lib/Crypt/Random/Source/SSLeay.pm:$PERL5LIB
此处省略许多尝试。
发现build过程中的报错很不稳定。

Building shimmer
cd printCompCounts && make all
make[1]: Entering directory /home/xxzhang/workplace/software/Shimmer/printCompCounts' make[1]: Nothing to be done forall’.
make[1]: Leaving directory `/home/xxzhang/workplace/software/Shimmer/printCompCounts’
mkdir -p blib/bin && cp printCompCounts/printCompCounts blib/bin/
Can’t locate object method “feature” via package “Module::Build::ConfigData” at /home/xxzhang/miniconda3/lib/5.26.2/Module-Build-0.4231/lib/Module/Build/Base.pm line 680.

重新开始。

Use of uninitialized value $mask in vec at /home/xxzhang/miniconda3/lib/5.26.2/perl-5.11.2/lib/warnings.pm line 353.
Use of uninitialized value $mask in vec at /home/xxzhang/miniconda3/lib/5.26.2/perl-5.11.2/lib/warnings.pm line 353.
Use of uninitialized value $mask in vec at /home/xxzhang/miniconda3/lib/5.26.2/perl-5.11.2/lib/warnings.pm line 353.
Use of uninitialized value $mask in vec at /home/xxzhang/miniconda3/lib/5.26.2/perl-5.11.2/lib/warnings.pm line 388.
Use of uninitialized value $mask in bitwise and (&) at /home/xxzhang/miniconda3/lib/5.26.2/perl-5.11.2/lib/warnings.pm line 400.
Use of uninitialized value $mask in vec at /home/xxzhang/miniconda3/lib/5.26.2/perl-5.11.2/lib/warnings.pm line 353.
Use of uninitialized value $mask in vec at /home/xxzhang/miniconda3/lib/5.26.2/perl-5.11.2/lib/warnings.pm line 353.
Use of uninitialized value $mask in vec at /home/xxzhang/miniconda3/lib/5.26.2/perl-5.11.2/lib/warnings.pm line 353.
Use of uninitialized value $mask in vec at /home/xxzhang/miniconda3/lib/5.26.2/perl-5.11.2/lib/warnings.pm line 353.
Use of uninitialized value $mask in vec at /home/xxzhang/miniconda3/lib/5.26.2/perl-5.11.2/lib/warnings.pm line 353.
Use of uninitialized value $mask in vec at /home/xxzhang/miniconda3/lib/5.26.2/perl-5.11.2/lib/warnings.pm line 353.
Use of uninitialized value $mask in vec at /home/xxzhang/miniconda3/lib/5.26.2/perl-5.11.2/lib/warnings.pm line 353.
Use of uninitialized value $mask in vec at /home/xxzhang/miniconda3/lib/5.26.2/perl-5.11.2/lib/warnings.pm line 388.
Use of uninitialized value $mask in bitwise and (&) at /home/xxzhang/miniconda3/lib/5.26.2/perl-5.11.2/lib/warnings.pm line 400.
Use of uninitialized value $mask in vec at /home/xxzhang/miniconda3/lib/5.26.2/perl-5.11.2/lib/warnings.pm line 388.
Use of uninitialized value $mask in bitwise and (&) at /home/xxzhang/miniconda3/lib/5.26.2/perl-5.11.2/lib/warnings.pm line 400.
Use of uninitialized value $mask in vec at /home/xxzhang/miniconda3/lib/5.26.2/perl-5.11.2/lib/warnings.pm line 353.
version version 0.87 required–this is only version 0.77 at /home/xxzhang/miniconda3/lib/5.26.2/Module/Metadata.pm line 27.
BEGIN failed–compilation aborted at /home/xxzhang/miniconda3/lib/5.26.2/Module/Metadata.pm line 27.
Compilation failed in require at /home/xxzhang/miniconda3/lib/5.26.2/Module-Build-0.4231/lib/Module/Build/Base.pm line 23.
BEGIN failed–compilation aborted at /home/xxzhang/miniconda3/lib/5.26.2/Module-Build-0.4231/lib/Module/Build/Base.pm line 23.
Compilation failed in require at /home/xxzhang/miniconda3/lib/5.26.2/Module-Build-0.4231/lib/Module/Build.pm line 17.
BEGIN failed–compilation aborted at /home/xxzhang/miniconda3/lib/5.26.2/Module-Build-0.4231/lib/Module/Build.pm line 17.
Compilation failed in require at /home/xxzhang/workplace/software/Shimmer/_build/lib/My/Build.pm line 2.
BEGIN failed–compilation aborted at /home/xxzhang/workplace/software/Shimmer/_build/lib/My/Build.pm line 2.
Compilation failed in require at ./Build line 45.
BEGIN failed–compilation aborted at ./Build line 45.

有时候,越着急,反而搞不定。
回到从前。

Can’t locate Module/Build/ConfigData.pm in @INC (you may need to install the Module::Build::ConfigData module) (@INC contains: /home/xxzhang/workplace/software/Shimmer/_build/lib /home/xxzhang/miniconda3/lib/5.26.2/Module-Build-0.4231/lib /home/xxzhang/miniconda3/lib/5.26.2/perl-5.11.2/lib/Module/Build/ /home/xxzhang/miniconda3/lib/5.26.2/Integrator-Module-Build-1.057/lib/Integrator/Test /home/xxzhang/miniconda3/lib/5.26.2/Module-Build-0.4231/lib/Module/ /home/xxzhang/miniconda3/lib/5.26.2/Module-Build-0.4231/lib/ /home/xxzhang/workplace/software/Shimmer/_build/lib /home/xxzhang/miniconda3/lib/5.26.2/Module-Build-0.4231/lib/ /home/xxzhang/miniconda3/lib/site_perl/5.26.2/x86_64-linux-thread-multi /home/xxzhang/miniconda3/lib/site_perl/5.26.2 /home/xxzhang/miniconda3/lib/5.26.2/x86_64-linux-thread-multi /home/xxzhang/miniconda3/lib/5.26.2 .) at /home/xxzhang/miniconda3/lib/5.26.2/Module-Build-0.4231/lib/Module/Build/Base.pm line 679.

后来,发现可能问题的原因在于自己安装的build模块不对。因为configData.pm是隶属于Module::Build之中的,所以,尝试重新安装Module::Build模块。
./Build

Building shimmer
cd printCompCounts && make all
make[1]: Entering directory /home/xxzhang/workplace/software/Shimmer/printCompCounts' make[1]: Nothing to be done forall’.
make[1]: Leaving directory `/home/xxzhang/workplace/software/Shimmer/printCompCounts’
mkdir -p blib/bin && cp printCompCounts/printCompCounts blib/bin/
Can’t locate Module/Build/ConfigData.pm in @INC (you may need to install the Module::Build::ConfigData module) (@INC contain s: /home/xxzhang/workplace/software/Shimmer/_build/lib /home/xxzhang/miniconda3/lib/5.26.2/Module-Build-0.4231/lib /home/xxz hang/miniconda3/lib/5.26.2/perl-5.11.2/lib/Module/Build/ /home/xxzhang/miniconda3/lib/5.26.2/Integrator-Module-Build-1.057/l ib/Integrator/Test /home/xxzhang/miniconda3/lib/5.26.2/Module-Build-0.4231/lib/Module/ /home/xxzhang/miniconda3/lib/5.26.2/M odule-Build-0.4231/lib/ /home/xxzhang/workplace/software/Shimmer/_build/lib /home/xxzhang/miniconda3/lib/5.26.2/Module-Build -0.4231/lib/ /home/xxzhang/miniconda3/lib/site_perl/5.26.2/x86_64-linux-thread-multi /home/xxzhang/miniconda3/lib/site_perl/ 5.26.2 /home/xxzhang/miniconda3/lib/5.26.2/x86_64-linux-thread-multi /home/xxzhang/miniconda3/lib/5.26.2 .) at /home/xxzhang /miniconda3/lib/5.26.2/Module-Build-0.4231/lib/Module/Build/Base.pm line 679.

关于Module::Build模块的安装问题,后来,发现可以使用conda直接安装。而且安装得到的,是对应于我们的perl的版本。即5.26.2。

cd condabin/
./conda config --add channels bioconda
./conda install perl-module-build
export PERL5LIB=/home/xxzhang/miniconda3/pkgs/perl-module-build-0.4224-pl526_3/lib/site_perl/5.26.2/:$PERL5LIB
cd /home/xxzhang/workplace/software/Shimmer
./Build
./Build test
./Build install

v=Building shimmer
cd printCompCounts && make all
make[1]: Entering directory /home/xxzhang/workplace/software/Shimmer/printCompCounts' make[1]: Nothing to be done forall’.
make[1]: Leaving directory `/home/xxzhang/workplace/software/Shimmer/printCompCounts’
mkdir -p blib/bin && cp printCompCounts/printCompCounts blib/bin/

cd printCompCounts && make all
make[1]: Entering directory /home/xxzhang/workplace/software/Shimmer/printCompCounts' make[1]: Nothing to be done forall’.
make[1]: Leaving directory `/home/xxzhang/workplace/software/Shimmer/printCompCounts’
mkdir -p blib/bin && cp printCompCounts/printCompCounts blib/bin/
t/1_load.t … ok
t/2_call.t … ok
All tests successful.
Files=2, Tests=9, 16 wallclock secs ( 0.02 usr 0.02 sys + 3.26 cusr 1.30 csys = 4.60 CPU)
Result: PASS

执行到最后一步的build install的时候,出现了报错:

Building shimmer
cd printCompCounts && make all
make[1]: Entering directory /home/xxzhang/workplace/software/Shimmer/printCompCounts' make[1]: Nothing to be done forall’.
make[1]: Leaving directory `/home/xxzhang/workplace/software/Shimmer/printCompCounts’
mkdir -p blib/bin && cp printCompCounts/printCompCounts blib/bin/
!!!
ERROR: Can’t create ‘/opt/perl5/bin’
Do not have write permissions on ‘/opt/perl5/bin’
!!!
at /home/xxzhang/miniconda3/lib/5.26.2/Module-Build-0.4231/lib/Module/Build/Base.pm line 3570.

反应下来就是说,无法写入/opt/perl5/bin路径中。尝试与师兄交涉修改这个系统路径的写入权限。
师兄的建议是:

还是尽量不要写入系统目录里面,再说了/opt/perl5是系统perl的路径,而它要覆写这里面的内容,所以你看看有没有可以指定安装位置的参数,让它装到自己的主目录里面。

虽然,尝试打开那个Base.pm的文件,查看了它的第3570行,但是没怎么看明白。
于是,现在尝试是否有参数,可以修改。
暂时没有找到。
不过,使用perl来运行shimmer.pl指令,屏显是这样的,是不是说明,安装好了?
/home/xxzhang/miniconda3/bin/perl shimmer.pl

Usage: shimmer.pl <–region chr1:1000-2000> <–bedfile bed file of regions> <–ref reference fasta>
For more information, type “perldoc shimmer.pl”. at shimmer.pl line 49.

我们带入数据看看,会不会出现类似的错误。
/home/xxzhang/miniconda3/bin/perl /home/xxzhang/workplace/software/Shimmer/shimmer.pl --minqual 25 --ref ./geneome/hg19/hg19.fa /home/xxzhang/workplace/QBRC/output_RNA/normal/normal.bam /home/xxzhang/workplace/QBRC/output_RNA/tumor/tumor.bam --outdir ./output_RNA

Can’t read file /home/xxzhang/workplace/QBRC/output_RNA/normal/normal.bam!
Failed to run /home/xxzhang/workplace/software/Shimmer/shimmer.pl --counts!

不再出现之前的那种错误:

/usr/bin/perl: symbol lookup error: /opt/perl5/lib/perl5/x86_64-linux-thread-multi/auto/List/Util/Util.so: undefined symbol: Perl_xs_handshake

不过是否真的不出现,还要看最终的整体运行的效果。
接下来,还有这个流程的最后一个问题,mutect的无效的问题。在下一篇文章中来写。

 类似资料: