tderrien / FEELnc

FEELnc : FlExible Extraction of LncRNA
GNU General Public License v3.0
82 stars 28 forks source link

Error when running FEELnc_codpot.pl example #15

Closed kthlnktng closed 7 years ago

kthlnktng commented 7 years ago

Hello,

I'm assisting a researcher in setting up FEELnc on a cluster.

I've included the installation details under the expandable section below:

We have several of the dependencies already available in modules, so those have been loaded: ```bash # using lmod module system here, so we must load gcc before loading other tools $ module load gcc/6.2.0 # perl module includes BioPerl 1.007001 $ module load perl/5.24.0 $ module load R/3.4.1 ``` `Parallel::ForkManager` was installed to a local Perl library, and `ROCR` and `randomForest` were installed to a local R package library: ```bash $ eval `perl -Mlocal::lib=~/perl5-O2` $ cpanm Parallel::ForkManager # tested, and can successfully use this Perl module ``` ```bash $ mkdir -p ~/R-3.4.1-FEELnc/library $ echo 'R_LIBS_USER="~/R-3.4.1-FEELnc/library"' > $HOME/.Renviron $ export R_LIBS_USER="~/R-3.4.1-FEELnc/library" $ R > install.packages("ROCR", repos="http://cran.r-project.org") > install.packages("randomForest", repos="http://cran.r-project.org") # tested, and can successfully use both R packages ``` The provided KmerInShort and fasta_ushuffle Linux executables work as expected, so these were not compiled from source. The FEELnc installation process was performed as described in the [README](https://github.com/tderrien/FEELnc#installation). ```bash $ git clone https://github.com/tderrien/FEELnc.git $ cd FEELnc/ $ export FEELNCPATH=${PWD} $ export PERL5LIB=${FEELNCPATH}/lib/:$PERL5LIB # need this additional line for BioPerl to be found $ export PERL5LIB=/n/app/perl/5.24.0/lib/site_perl/5.24.0/:$PERL5LIB $ export PATH=$PATH:${FEELNCPATH}/scripts/ $ export PATH=$PATH:${FEELNCPATH}/utils/ $ export PATH=$PATH:${FEELNCPATH}/bin/LINUX/ ```

The installation worked without any errors, but testing with the toy example does not. Step 1 (`FEELnc_filter.pl`) works fine; Step 2 (`FEELnc_codpot.pl`) ends in `No locks available` error. ```bash $ cd test $ FEELnc_filter.pl -i transcript_chr38.gtf -a annotation_chr38.gtf \ > -b transcript_biotype=protein_coding > candidate_lncRNA.gtf # works as expected $ FEELnc_codpot.pl -i candidate_lncRNA.gtf -a annotation_chr38.gtf -b transcript_biotype=protein_coding -g genome_chr38.fa --mode=shuffle Warning: Output directory './feelnc_codpot_out' already exists... files might be overwritten! You do not have specified a maximum number mRNAs transcripts for the training. Use all the annotation, can be long... You do not have specified a maximum number lncRNA transcripts for the training. Use all the annotation, can be long... > Extract ORFs/cDNAs for mRNAs from a GTF file Parsing file 'annotation_chr38.gtf'... Parse input file: [----------------------------------------------------------------------------------------------------] Your input GTF file 'annotation_chr38.gtf' contains *254* transcripts ------------- EXCEPTION: Bio::Root::Exception ------------- MSG: Could not open index file genome_chr38.fa.index: No locks available STACK: Error::throw STACK: Bio::Root::Root::throw /n/app/perl/5.24.0/lib/site_perl/5.24.0//Bio/Root/Root.pm:447 STACK: Bio::DB::IndexedBase::_open_index /n/app/perl/5.24.0/lib/site_perl/5.24.0//Bio/DB/IndexedBase.pm:712 STACK: Bio::DB::IndexedBase::_index_files /n/app/perl/5.24.0/lib/site_perl/5.24.0//Bio/DB/IndexedBase.pm:689 STACK: Bio::DB::IndexedBase::index_file /n/app/perl/5.24.0/lib/site_perl/5.24.0//Bio/DB/IndexedBase.pm:525 STACK: Bio::DB::IndexedBase::new /n/app/perl/5.24.0/lib/site_perl/5.24.0//Bio/DB/IndexedBase.pm:405 STACK: ExtractFromFeature::feature2seq /home/kmk34/tickets/INC0189539_FEELnc/FEELnc/lib//ExtractFromFeature.pm:399 STACK: ExtractCdnaOrf::CreateORFcDNAFromGTF /home/kmk34/tickets/INC0189539_FEELnc/FEELnc/lib//ExtractCdnaOrf.pm:303 STACK: /home/kmk34/tickets/INC0189539_FEELnc/FEELnc/scripts/FEELnc_codpot.pl:298 ``` I found a related issue about another tool that uses BioPerl, ending in the same `No locks available error`. The poster suggested that NFS filesystems (which I'm using) do not work well with multiple processes using the same file : http://lists.ensembl.org/pipermail/dev/2014-December/010636.html Do you have any suggestions on how to avoid this issue? Thank you! Kathleen
tderrien commented 7 years ago

Dear Kathleen,

First of all, thank you for using FEELnc and sorry for the delay in our reply. I'd like also to tell you that your post is very clear and detailed. Unfortunately, this is is the first time I see this error and it probably relies on your particular NFS that does not interact well with the Bioperl module Bio::DB::Fasta (that we do not maintain). Two possible alternatives would be to create a VM (virtual machine) and install FEELnc using it or to try the nextflow implementation of the pipeline STAR/Cufflinks/FEELnc here: https://github.com/skptic/lncRNA-Annotation-nf

All the best,

Thomas

kthlnktng commented 7 years ago

Hi Thomas,

Thanks for your response. I was able to move to a different filesystem and the FEELnc_codpot.pl step worked without error. The third example command using FEELnc_classifier.pl also yielded errors, though that was unrelated to the FEELnc code base. The error indicated that we didn't build Perl with support for Berkeley DB. After rebuilding Perl, the example commands worked as expected.

Please feel free to close out the issue.

Best, Kathleen

tderrien commented 7 years ago

Hello Kathleen, Happy it helped! Thank you again for your feedback,

Best,

Thomas