RNAmmer 1.2 install issues

RNAmmer is getting on in years, but it is still heavily used, something that we, the authors deeply appreciate. However, it is not always easy to install. Here, I describe what needs to be done in order to get it up and running.

Path changes

The changes that have to be introduced are to be found in this section:


# the path of the program
my $INSTALL_PATH = "/usr/cbs/bio/src/rnammer-1.2";

# The library in which HMMs can be found
my $XML2GFF = "$INSTALL_PATH/xml2gff";
my $XML2FSA = "$INSTALL_PATH/xml2fsa";

# The location of the RNAmmer core module
my $RNAMMER_CORE     = "$INSTALL_PATH/core-rnammer";

# path to hmmsearch of HMMER package
chomp ( my $uname = `uname`);
my $PERL;
if ( $uname eq "Linux" ) {
        $HMMSEARCH_BINARY = "/usr/cbs/bio/bin/linux64/hmmsearch";
        $PERL = "/usr/bin/perl";
} elsif ( $uname eq "IRIX64" ) {
        $HMMSEARCH_BINARY = "/usr/cbs/bio/bin/irix64/hmmsearch";
        $PERL = "/usr/sbin/perl";
} else {
        die "unknown platform\n";

The program was in the first place written to be run on the servers at the Danish Technical University, hence the $INSTALL_PATH setting. This should be set to wherever you keep your RNAmmer installation. In my case, I am setting it to /home/karinlag/projects/rnammer, since I am here having it as a local install in my home directory.

The next thing that has to be done, is to get the right HMMer installation and to figure out where perl is.

You will need version 2.3 of HMMer, which you can download from this location. Download it, and read the INSTALL instructions. It should install cleanly on most *nix systems.

I installed hmmer-2.3 in /home/karinlag/src, where it created the directory hmmer-2.3. Inside the src directory you will find the hmmsearch program. Set the $HMMSEARCH_BINARY variable to point to the hmmsearch program. Note: you need to check what the command uname tells you to figure out what system you have so that you know which of the if clauses to modify things in. If it does not say Linux or IRIX64 (which is unlikely these days), you will need to set either the Linux string or the IRIX64 string to what you have, and set the paths below accordingly.

You also need to check that you have the right perl path. You can figure that out by doing ‘which perl’.

You should now be able to do

perl rnammer -S bac -m lsu,ssu,tsu -gff - example/ecoli.fsa

and get results.

Posix errors

You may end up with errors that say something along the lines of 

FATAL: POSIX threads support is not compiled into HMMER; --cpu doesn't have any effect

If you get this, you need to find the following in the core-rnammer script:

system sprintf('%s --cpu 1 --compat ...... and so on

Remove the two instances of –cpu 1 (not the whole sentence, just ‘–cpu 1’), and you should be good to go.


You might end up with having RNAmmer complain about not being able to find XML/Simple.pm in @INC. To solve this, you need to install perl-XML-Simple. Installing perl modules is something I consider to be deep voodoo, so I won’t even try to describe how to do that. Refer to your system to figure that one out.

Other errors?

If you discover other errors than those I have described here, let me know in the comments!

22 Replies to “RNAmmer 1.2 install issues”

  1. Hello

    I cannot perform even an example line . I get the copy of fasta file renamed to temp.17992.fsa and some log in 17967.tsu.cf.

    I could not get hmmer version 2.3. the file is missing on the server so I have installed the lastest one.

    1. Hi again
      I ve found stable version of hmmer 2.3.2
      had uninstalled the higher version by # make uninstall
      and have installed 2.3.2

      but it did not work for me …

      CentOS 6.4

    2. Thanks for your reply .
      I have figured it out !
      My problem was in wrong link location on hmmsearch. Right after fixing it I have got Posix error:
      “FATAL: POSIX threads support is not compiled into HMMER; –cpu doesn’t have any effect “.
      Luckily, you gave clear instructions how to make it work 🙂

      1. Another way to fix this error, or at least it just worked for me, is to compile HMMER 2.3.2 with thread support, as described in their documentation (page 11). In my case, I did:

        ./configure –enable-threads –prefix /usr/local/genome/store/hmmer2.3/

        Then the usual make and make install commands.

        That way, I got not only parallel support, but also got this older version to install in a place that does not conflict with my newer installation of HMMER.

  2. I changed the path, fixed the POSIX error by deleting “-cpu 1″s, and ran the example file but I still get the error message below. Also, even if I ran my mitochondrial genomes using the RNAmmer on web server without installing the RNAmmer in my computer, it results in empty space like the result at the bottom of this comment. What should I do?

    FATAL: Incorrect number of arguments.
    Usage: hmmsearch [-options]
    Available options are:
    -h : help; print brief help on version and usage
    -A : sets alignment output limit to best domain alignments
    -E : sets E value cutoff (globE) to <= x
    -T : sets T bit threshold (globT) to >= x
    -Z : sets Z (# seqs) for E-value calculation

    ##source-version RNAmmer-1.2
    ##date 2014-03-27
    ##Type DNA
    # seqname source feature start end score +/- frame attribute
    # ———————————————————————————————————
    # ———————————————————————————————————

    1. Thankyou for reporting this. I am talking to the webserver people about this now.

      As for running it on your own – are you certain you have HMMER version 2.3?

        1. Bump — I see the same error reported in March when running rnammer-1.2 on Linux:

          “FATAL: Incorrect number of arguments.
          Usage: hmmsearch [-options]
          Available options are:
          -h : help; print brief help on version and usage
          -A : sets alignment output limit to best domain alignments
          -E : sets E value cutoff (globE) to <= x
          -T : sets T bit threshold (globT) to >= x
          -Z : sets Z (# seqs) for E-value calculation”

          (Note this error is repeated a total of six times when the test is performed)

          I definitely have hmmer-2.3.2 installed and am pointing to the correct binary via the $HMMSEARCH_BINARY variable. Not really sure where to go from here…

          1. Just wanted to add that I’ve also tried the hmmsearch binary provided with hmmer-2.3 (rather than the hmmer-2.3.2 distribution used initially) with the same result.

        2. Please feel free to delete this post and my two previous posts — after further inspection, I realized I made a mistake when updating core-rnammer (I deleted “–cpu”, but not “–cpu 1”, hence the errors thrown by hmmsearch about an improper number of arguments).

          Sorry for the message clutter…

          1. I am glad you figured out this!

            I am approving these comments so that others can see that if they get errors regarding HMMsearch options, they could have done the same. I.e. check that all that should be deleted, has been deleted.

            Thanks for figuring this out!

  3. Hi,

    I installed rnammer-1.2 in my Mac OS X 10.8. I followed your instructions and got everything to work until the last XML/Simple issue. The script tried to find the XML/Simple.pm in the default @INC path (which was apparently modified by Macports). I tried to install the XML::Simple module, but I cannot install it as a regular user, so I installed it as root via CPAN.

    After that I ran the following command as a regular user vs. as root.

    perl ./rnammer -S bac -m lsu,ssu,tsu -xml test.xml -gff test.gff -h test.hmmreport < example/ecoli.fsa

    It turned out that I can run this as root with no problem. But the XML/Simple error pop up when running the same command as a regular user. I assume this could be due to some permission privilege of a user to access the pm installed by root. How can I make it work for regular users? Any suggestions?


    1. My best suggestion is that you figure out where the pm got stored, and check the permissions of it. It is not unusual that things installed as root get root only permissions. Change those, and see if that helps. Let me know if it doesn´t.

  4. This was the first hit when I looked for that POSIX error. Thanks for the fix! It now works in 11 seconds, rather than not working at all.

    Is anyone still maintaining RNAmmer? You already figured out the most common installation problems, which should be added to the RNAmmer readme.

  5. Maybe fix a typo?

    FATAL: POSIX threads support is not compiled into HMMER; –cpu doesn’t have any effect
    remove ‘–cpu 1’ instead of ‘-cpu 1’ flag to avoid confusion! Double dashes instead on only one.

    In addition, maybe add to the manual and website comment that if installing on a Mac OSX you’d need to change the Unix version to Darwin:
    #My personal set up

    # path to hmmsearch of HMMER package
    chomp ( my $uname = `uname`);
    my $PERL;
    if ( $uname eq “Linux” ) {
    $HMMSEARCH_BINARY = “/Users/Hernan/Programs/hmmer-2.3.2/src/hmmsearch”;
    $PERL = “/usr/bin/perl”;
    } elsif ( $uname eq “Darwin” ) {
    $HMMSEARCH_BINARY = “/Users/Hernan/Programs/hmmer-2.3.2/src/hmmsearch”;
    $PERL = “/usr/bin/perl”;
    } else {
    die “unknown platform\n”;

    Postdoc at FIU

  6. In addition, depending how much Perl scripting you do (I don’t do much), there are a few packages that are needed for RNAmmer to work well in MacOS X. For some reason my laptop with Maverics had them but my desktop with Yosemite didn’t. You can install the XML::simple perl module by typing on your terminal:

    sudo cpan XML::Simple

    This is what you need to see if everything was successful! A very simple table:
    If you run the test script: perl rnammer -S bac -m lsu,ssu,tsu -gff – example/ecoli.fsa
    I get this!! Fun stuff
    Bracken-Grissoms-iMac:rnammer Odontodactylus$ perl rnammer -S bac -m lsu,ssu,tsu -gff – example/ecoli.fsa
    ##source-version RNAmmer-1.2
    ##date 2015-03-16
    ##Type DNA
    # seqname source feature start end score +/- frame attribute
    # ———————————————————————————————————
    ecoli_section RNAmmer-1.2 rRNA 18068 20969 3754.0 + . 23s_rRNA
    ecoli_section RNAmmer-1.2 rRNA 21067 21181 86.3 + . 5s_rRNA
    ecoli_section RNAmmer-1.2 rRNA 16177 17706 1950.6 + . 16s_rRNA
    # ———————————————————————————————————
    Bracken-Grissoms-iMac:rnammer Odontodactylus$

    Happy RNAseq-ing!

  7. Hi all

    I’m running RNammer 1.2 in TACC. Though it takes Perl executable in line 51 of “rnammer” and we can point out to our local perl installed directory ; in line 256 and 266 it uses perl without path variable which eventually leads to conflict with globally installed one and rise missing package issue.

Leave a Reply

Your email address will not be published. Required fields are marked *