5

I have downloaded tRNAscan-SE from here. After decompressing and untaring the file, I installed it using:

./configure
make
make install

When I type tRNAscan-SE --help, I get the help page:

tRNAscan-SE 2.0 (December 2017)

FATAL: No sequence file(s) specified.

Usage: tRNAscan-SE [-options] <FASTA file(s)>

  Scan a sequence file for tRNAs 
          -- default: use Infernal & tRNA covariance models
             with eukaryotic sequences 
             (use -B, -A, -M, -O or -G to scan other types of sequences)

Basic Options
  -E         : search for eukaryotic tRNAs (default)
  -B         : search for bacterial tRNAs
  -A         : search for archaeal tRNAs
  -M <model> : search for mitochondrial tRNAs
                 options: mammal, vert
  -O         : search for other organellar tRNAs
  -G         : use general tRNA model (cytoslic tRNAs from all 3 domains included)
  -L         : search using the legacy method (tRNAscan, EufindtRNA, and COVE)
                 use with -E, -B, -A, -O, or -G
  -I         : search using Infernal (default)
                 use with -E, -B, -A, -O, or -G
  -o <file>  : save final results in <file>
  -f <file>  : save tRNA secondary structures to <file>
  -m <file>  : save statistics summary for run in <file>
               (speed, # tRNAs found in each part of search, etc)
  -H         : show both primary and secondary structure components to
               covariance model bit scores
  -q         : quiet mode (credits & run option selections suppressed)

  -h         : print full list (long) of available options

I then tried to use it with tRNAscan-SE c_elegans.PRJNA13758.WS263.genomic.fa but it gave the following error:

FATAL: Unable to find /usr/local/bin/cmsearch executable

After googling cmsearch, it seems that is is part of the Infernal package. So, I installed infernal with conda using conda install infernal.

I pulled the help from cmsearch successfully:

cmsearch -h    
# cmsearch :: search CM(s) against a sequence database
# INFERNAL 1.1.2 (July 2016)
# Copyright (C) 2016 Howard Hughes Medical Institute.
# Freely distributed under a BSD open source license.
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Usage: cmsearch [options] <cmfile> <seqdb>

Basic options:
  -h        : show brief help on version and usage
  -g        : configure CM for glocal alignment [default: local]
  -Z <x>    : set search space size in *Mb* to <x> for E-value calculations  (x>0)
  --devhelp : show list of otherwise hidden developer/expert options

Options directing output:
  -o <f>       : direct output to file <f>, not stdout
  -A <f>       : save multiple alignment of all significant hits to file <s>
  --tblout <f> : save parseable table of hits to file <s>
  --acc        : prefer accessions over names in output
  --noali      : don't output alignments, so output is smaller
  --notextw    : unlimit ASCII text output line width
  --textw <n>  : set max width of ASCII text output lines  [120]  (n>=120)
  --verbose    : report extra information; mainly useful for debugging

Options controlling reporting thresholds:
  -E <x> : report sequences <= this E-value threshold in output  [10.0]  (x>0)
  -T <x> : report sequences >= this score threshold in output

Options controlling inclusion (significance) thresholds:
  --incE <x> : consider sequences <= this E-value threshold as significant  [0.01]
  --incT <x> : consider sequences >= this score threshold as significant

Options controlling model-specific reporting thresholds:
  --cut_ga : use CM's GA gathering cutoffs as reporting thresholds
  --cut_nc : use CM's NC noise cutoffs as reporting thresholds
  --cut_tc : use CM's TC trusted cutoffs as reporting thresholds

Options controlling acceleration heuristics*:
  --max      : turn all heuristic filters off (slow)
  --nohmm    : skip all HMM filter stages, use only CM (slow)
  --mid      : skip first two HMM filter stages (SSV & Vit)
  --default  : default: run search space size-dependent pipeline  [default]
  --rfam     : set heuristic filters at Rfam-level (fast)
  --hmmonly  : use HMM only, don't use a CM at all
  --FZ <x>   : set filters to defaults used for a search space of size <x> Mb
  --Fmid <x> : with --mid, set P-value threshold for HMM stages to <x>  [0.02]

Other options*:
  --notrunc     : do not allow truncated hits at sequence termini
  --anytrunc    : allow full and truncated hits anywhere within sequences
  --nonull3     : turn off the NULL3 post hoc additional null model
  --mxsize <x>  : set max allowed alnment mx size to <x> Mb [df: autodetermined]
  --smxsize <x> : set max allowed size of search DP matrices to <x> Mb  [128.]
  --cyk         : use scanning CM CYK algorithm, not Inside in final stage
  --acyk        : align hits with CYK, not optimal accuracy
  --wcx <x>     : set W (expected max hit len) as <x> * cm->clen (model len)
  --toponly     : only search the top strand
  --bottomonly  : only search the bottom strand
  --tformat <s> : assert target <seqdb> is in format <s>: no autodetection
  --cpu <n>     : number of parallel CPU workers to use for multithreads

*Use --devhelp to show additional expert options.

I tried the tRNAscan-SE command again but it failed with the same error message.

So, tRNAscan-SE is looking for cmsearch in the wrong place. How can I make tRNAscan-SE use cmsearch successfully?

Cheers.

Update

Forgot to tell you I am working on Mac OS X and that cmsearch is installed here:

/Users/user/anaconda/envs/python3env/bin/cmsearch

and my python3env anaconda environment is active.

Biomagician
  • 2,459
  • 16
  • 30
  • 2
    Please [edit] your question and tell us i) what operating system you are using and ii) assuming it is some sort of *nix, the output of which cmsearch – terdon Jul 06 '18 at 09:43

4 Answers4

8

You may try to set the correct path through the infernal_dir variable in tRNAscan-SE.conf.src. You might need to do this before the installation process.

Original file starts with:

# tRNAscan-SE 2.0 
# Configuration File

# default paths
bin_dir: @bindir@
lib_dir: @libdir@/tRNAscan-SE
infernal_dir: {bin_dir}

Try the following:

# tRNAscan-SE 2.0 
# Configuration File

# default paths
bin_dir: @bindir@
lib_dir: @libdir@/tRNAscan-SE
infernal_dir: "/Users/user/anaconda/envs/python3env/bin"
bli
  • 3,130
  • 2
  • 15
  • 36
  • I've done what you said and it still works but how do I know it's not because my symbolic links are still active? Do you know how I can erase them? – Biomagician Jul 06 '18 at 15:51
  • 1
    @charlesdarwin You can remove them by (carefully) performingsudo rm /usr/local/bin/cmsearch and sudo rm /usr/local/bin/cmscan. – bli Jul 06 '18 at 16:04
5

An easy way to build tRNAscan and their dependencies "all Infernal packages" without confusion is to run

conda install -c bioconda trnascan-se 
Bioathlete
  • 2,574
  • 12
  • 29
BioInfo
  • 374
  • 3
  • 13
4

tRNAscan-SE 2.0 requires separate installation of Infernal 1.1.2. The source code and prebuilt binaries can be obtained at http://eddylab.org/infernal/.

The installation directory of Infernal should be the same as the one where tRNAscan-SE 2.0 is installed.

When install infernal, run the configure command with the option --prefix <your tRNAscan-SE-2.0 install path>. If you didn't add option --prefix when installing tRNAscan-SE-2.0, then you should install infernal without option --prefix.

Konrad Rudolph
  • 4,845
  • 14
  • 45
Nancy Liu
  • 41
  • 1
2

A much cleaner solution is given in @bli's answer.


The error message is telling you that tRNAScan-SE is looking for the cmsearch executable at /usr/local/bin/cmsearch. However, you installed it though conda which apparently placed it at /Users/user/anaconda/envs/python3env/bin/cmsearch.

A simple, if not very elegant solution, would be to make a link to it:

sudo ln -s /Users/user/anaconda/envs/python3env/bin/cmsearch /usr/local/bin/
terdon
  • 10,071
  • 5
  • 22
  • 48
  • had to do the same with cmscan and now the code is running. – Biomagician Jul 06 '18 at 12:26
  • what does this soft link do? – Biomagician Jul 06 '18 at 12:26
  • @charlesdarwin This enables the program to access the program from the place it looks at by default. There might be a cleaner way to do: Changing the default (see my untested answer). – bli Jul 06 '18 at 12:37
  • 1
    @charlesdarwin as bli said, that just creates a "fake file" at /usr/local/bin/ which points to /Users/user/anaconda/envs/python3env/bin/cmsearch, so that when something tries to open /usr/local/bin/cmsearch, it will actually run /Users/user/anaconda/envs/python3env/bin/cmsearch. But bli's approach of changing the configuration file is a much cleaner solution. Please use that instead. – terdon Jul 06 '18 at 12:38