A friend/collaborator was having problems getting tRNAscan-SE to work on his Debian machine (I think it was Debian). We came up with a fix for it that I’d like to share.

tRNAScan-SE predicts transfer RNA genes in a nucleotide sequence. It was written by Todd Lowe & Sean Eddy (The paper) and it’s very, very good at what it does but there is a glitch with compiling it on my Fedora 14 installation & my buddy’s Debian machine. This is what happens when we try to compile it:

[nabil@tinkerbell tRNAscan-SE-1.3]$ make gcc -O -c trnascan.c gcc -O 
-DTSCANDIR=/home/nabil/lib/tRNAscan-SE -o trnascan-1.4 trnascan.c gcc 
-O -c align.c  
.... blah blah blah blah blah.... 
scorestack.c: In function 'free_hitstack': scorestack.c:247:54: 
warning: comparison between pointer and integer 
gcc -O -c sqio.c sqio.c:238:1: 
error: conflicting types for 'getline' /usr/include/stdio.h:673:20: 
note: previous declaration of 'getline' was here 
make: *** [sqio.o] Error 1``

So, apparently on some linux distros, ‘getline’ function is an environment variable and creates a conflict during tRNAscan-SE installation. (This is basically what’s written in the compile error).

BUT to fix this problem, run this command in the tRNAscan-SE directory:

perl -pi -e "s/getline/getline2/g" sqio.c

This command will change all getline variables on the file sqio.c to getline2, avoiding conflicts.

Problem solved!