Open sscien opened 2 years ago
https://github.com/nf-core/rnafusion/issues/164
This seems to be a docker-specific issue, thinking of overwriting the ericscript.pl
in conda env or executing ericscript.pl
outside conda.
Solution 1: chmod 777 /usr/local/envs/Fusion/share/ericscript-0.5.5-5/lib/data/_resources/.flag.dbexists
chmod o-rwx /usr/local/envs/Fusion/share/ericscript-0.5.5-5/lib/data/_resources/
chmod: changing permissions of '/usr/local/envs/Fusion/share/ericscript-0.5.5-5/lib/data/_resources/': Operation not permitted
Solution2: /storage1/fs1/dinglab/Active/Projects/PECGS/PECGS_pipeline/Fusion/ericscript-0.5.5/ericscript.pl perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LANG = "en_US.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). Can't locate Pod/Usage.pm in @INC (you may need to install the Pod::Usage module) (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.24.1 /usr/local/share/perl/5.24.1 /usr/lib/x86_64-linux-gnu/perl5/5.24 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.24 /usr/share/perl/5.24 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base .) at /storage1/fs1/dinglab/Active/Projects/PECGS/PECGS_pipeline/Fusion/ericscript-0.5.5/ericscript.pl line 5. BEGIN failed--compilation aborted at /storage1/fs1/dinglab/Active/Projects/PECGS/PECGS_pipeline/Fusion/ericscript-0.5.5/ericscript.pl line 5.
Pod::Usage has been bundled with Perl since Perl 5.6.0. You have a broken (i.e. partial) installation of Perl, since it's missing that module.
Since your system is suppose to have it already, Pod::Usage is not bundled in the perlbrew installer like the other modules it uses.
Either install Pod::Usage first, or use the correct command line args for perlbrew (since it loads Pod::Usage when a help message needs to be displayed, from what I can tell).
Solution 3 FROM continuumio/miniconda3:4.3.11
ARG DEBIAN_FRONTEND=noninteractive
RUN conda install -c bioconda pyvcf
COPY filter_nsamples.py /opt/conda/bin RUN chmod +x /opt/conda/bin/filter_nsamples.py
RUN sed -i 's/args.output, inp/open(args.output, 'w'), inp/' /opt/conda/bin/vcf_filter.py ENV PATH="/opt/conda/bin:${PATH}" ARG PATH="/opt/conda/bin:${PATH}"
CMD ["/bin/bash cd /opt"]
Pod::Usage has been bundled with Perl since Perl 5.6.0. You have a broken (i.e. partial) installation of Perl, since it's missing that module.
Since your system is suppose to have it already, Pod::Usage is not bundled in the perlbrew installer like the other modules it uses.
Either install Pod::Usage first, or use the correct command line args for perlbrew (since it loads Pod::Usage when a help message needs to be displayed, from what I can tell).
This was because we were not calling perl from the conda env.
Solution:
In ericscript.pl
change #!/usr/bin/ perl
to #!/usr/bin/env perl
This issue was caused by the permission issue with ericscript docker, which hasn't been solved by other people. ericscript hasn't been updated for many years.
Ultimate solution:
So instead of using theericscript.pl
from conda, we use theericscript.pl
from local which we could modify. And we use all other dependencies from the conda env.
In fusion_pipeline_ris_v1.sh
, change Inericscript.pl
to
/storage1/fs1/dinglab/Active/Projects/PECGS/PECGS_pipeline/Fusion/ericscript-0.5.5/ericscript.pl -o ERICSCRIPT --remove -ntrim 0 --refid homo_sapiens -db $genome_db -p $cpu -name $sample $fq_1 $fq_2 1> logs/ericscript.out 2> logs/ericscript.err
Here are the logs for successfully testing ericscript
(Fusion) y.song@compute1-exec-262:/storage1/fs1/dinglab/Active/Projects/ALCHEMIST/Alchemist_analysis/RNA-seq_Fusion_Alchemist_batch_01_11_22/ALCH-ACXH-TTP1-A$ /storage1/fs1/dinglab/Active/Projects/PECGS/PECGS_pipeline/Fusion/ericscript-0.5.5/ericscript.pl -o ERICSCRIPT --remove -ntrim 0 --refid homo_sapiens -db $genome_db -p 4 -name ALCH-ACXH-TTP1-A ALCH-ACXH-TTP1-A_1.fastq.gz ALCH-ACXH-TTP1-A_2.fastq.gz perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LANG = "en_US.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). During startup - Warning messages: 1: Setting LC_CTYPE failed, using "C" 2: Setting LC_COLLATE failed, using "C" 3: Setting LC_TIME failed, using "C" 4: Setting LC_MESSAGES failed, using "C" 5: Setting LC_MONETARY failed, using "C" 6: Setting LC_PAPER failed, using "C" 7: Setting LC_MEASUREMENT failed, using "C" [EricScript] Updating BWA indexes for homo_sapiens ...^[[Odone.
[EricScript] Starting EricScript analysis for sample ALCH-ACXH-TTP1-A. [EricScript] Aligning with bwa ...^[[B^[[B^[[I^[[Odone. During startup - Warning messages: 1: Setting LC_CTYPE failed, using "C" 2: Setting LC_COLLATE failed, using "C" 3: Setting LC_TIME failed, using "C" 4: Setting LC_MESSAGES failed, using "C" 5: Setting LC_MONETARY failed, using "C" 6: Setting LC_PAPER failed, using "C" 7: Setting LC_MEASUREMENT failed, using "C" [EricScript] Extracting discordant alignments ... During startup - Warning messages: 1: Setting LC_CTYPE failed, using "C" 2: Setting LC_COLLATE failed, using "C" 3: Setting LC_TIME failed, using "C" 4: Setting LC_MESSAGES failed, using "C" 5: Setting LC_MONETARY failed, using "C" 6: Setting LC_PAPER failed, using "C" 7: Setting LC_MEASUREMENT failed, using "C" done. [EricScript] Building exon junction reference ... During startup - Warning messages: 1: Setting LC_CTYPE failed, using "C" 2: Setting LC_COLLATE failed, using "C" 3: Setting LC_TIME failed, using "C" 4: Setting LC_MESSAGES failed, using "C" 5: Setting LC_MONETARY failed, using "C" 6: Setting LC_PAPER failed, using "C" 7: Setting LC_MEASUREMENT failed, using "C" done.
This error pops up from running Fusion pipeline on RIS compute1
In file(file, ifelse(append, "a", "w")) : cannot open file '/usr/local/envs/Fusion/share/ericscript-0.5.5-5/lib/data/_resources/.flag.dbexists': Permission denied Execution halted readline() on closed filehandle FILE at /usr/local/envs/Fusion/bin/ericscript.pl line 177. Use of uninitialized value $flagdb in numeric eq (==) at /usr/local/envs/Fusion/bin/ericscript.pl line 178.