ding-lab / Fusion_hg38

1 stars 0 forks source link

Ericscript error #1

Open sscien opened 2 years ago

sscien commented 2 years ago

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.

sscien commented 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.

sscien commented 2 years ago

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.

sscien commented 2 years ago

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).

sscien commented 2 years ago

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"]

sscien commented 2 years ago

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

sscien commented 2 years ago

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.plfrom conda, we use theericscript.plfrom 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

sscien commented 2 years ago

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.