Commit 4c587125 authored by Andreas Tille's avatar Andreas Tille

Imported Upstream version 1.0.2

parents
Infernal - inference of RNA secondary structure alignments
http://infernal.janelia.org/
----------------------------------------------------------------
:: About this software:
Infernal is an implementation of "covariance models" (CMs), which
are statistical models of RNA secondary structure and sequence
consensus.
You give Infernal a multiple sequence alignment of a conserved
structural RNA family, annotated with the consensus secondary
structure. The "cmbuild" program builds a statistical profile of
your alignment. That CM can be used as a query in a database
search to find more homologs of your RNAs (the "cmsearch"
program). You can also use a CM of a representative alignment of
your sequence family to create a larger consensus alignment of
any number of RNAs.
We still consider this software to be under development. Our
research efforts are focused on reducing the computatational
complexity of CM algorithms so searches are faster. We haven't
yet spent as much effort as we'd like on making Infernal pretty
and user-friendly. Nonetheless, Infernal provides the software
engines behind the Rfam RNA database (http://rfam.janelia.org).
:: Getting Infernal:
WWW: http://infernal.janelia.org/
Distro tarballs: ftp://selab.janelia.org/pub/software/infernal/
:: Developer access (password required):
SVN: https://svn.janelia.org/eddylab/eddys/src/infernal
:: Installation:
See the Userguide.pdf for complete instructions. In brief:
% ./configure
% make
The programs will be in the src/ subdirectory.
Additionally, 'make check' will run an automated test suite, and
'make install' will install the programs in /usr/local/bin by
default.
:: Getting started:
For documentation, including installation instructions and a
tutorial, see the Infernal User's Guide: Userguide.pdf.
:: Reference:
- EP Nawrocki, DL Kolbe, and SR Eddy, "Infernal 1.0: inference of
RNA alignments" Bioinformatics 25:1335-1337 (2009).
:: Other references:
- DL Kolbe and SR Eddy, "Local RNA structure alignment with
incomplete sequence", Bioinformatics 25:1236-1243 (2009).
- EP Nawrocki and SR Eddy, "Query-dependent banding (QDB) for
faster RNA similarity searches", PLoS Computational Biology,
3:e56 (2007).
- SR Eddy, "A memory efficient dynamic programming algorithm for
optimal structural alignment of a sequence to an RNA secondary
structure", BMC Bioinformatics, 3:18 (2002).
- R Durbin, S Eddy, A Krogh, G Mitchison. Biological Sequence
Analysis: Probabilistic Models of Proteins and Nucleic Acids.
Cambridge University Press, Cambridge UK. (1998).
- S.R. Eddy and R. Durbin, "RNA sequence analysis using
covariance models", Nucl. Acids Res. 22:2079-2088 (1994).
:: Credits:
The current Infernal developer team at HHMI Janelia Farm:
Diana Kolbe, Eric Nawrocki, and Sean Eddy.
Configuring Infernal for MPI parallelization.
---------------------------------------------
If you have an MPI-compliant library installed (LAM, MPICH, OpenMPI)
and you want to use MPI parallelization, enable MPI with the
--enable-mpi flag to the configure script:
% ./configure --enable-mpi
% make
This will build the normal seven Infernal executables and four of
these executables (cmalign, cmcalibrate, cmscore and cmsearch) will be
MPI programs that can either be run in serial mode or in MPI mode by
using the --mpi option and running with an MPI-compliant library.
Notes on running cmsearch in MPI mode on a cluster
--------------------------------------------------
The following is an example from our configuration. We use LAM MPI, on
a cluster that uses the Sun Grid Engine (SGE) as its queueing manager.
Your mileage may vary: you may need to consult your local MPI or
cluster guru if you're running a different MPI package or a different
queue manager.
Make sure 'cmsearch' is in your $PATH.
To run the CM foo.cm against the database genome.fa on 100 CPUs
execute the following on the head node (login-eddy.int.janelia.org):
$ qsub -N foo -o foo.out -b y -cwd -V -j y -pe lam-mpi-tight 100 'mpirun C cmsearch --mpi -E 50 foo.cm genome.fa > cmsearch.out'
This submits a single SGE job named 'foo' to the cluster. This job
will run cmsearch in parallel mode on 100 processors and report all
hits with E-values below 50 to cmsearch.out.
Infernal - inference of RNA secondary structural alignments
Copyright (C) 2009 HHMI Janelia Farm Research Campus
Portions Copyright (C) 1991-2009 Sean R. Eddy
Portions Copyright (C) 2005-2009 Eric P. Nawrocki
Portions Copyright (C) 2005-2009 Diana L. Kolbe
Portions Copyright (C) 2004 Zasha Weinberg
Portions Copyright (C) 1990 Don G. Gilbert
Portions Copyright (C) 1995-2006 Washington University in St. Louis
Portions Copyright (C) 1992-1995 Medical Research Council, UK
Portions Copyright (C) 2004 University of Washington, Seattle
Portions Copyright (C) 1986,1993,1995 University of Toronto
Portions Copyright (C) 1989-2001 Free Software Foundation
Portions Copyright (C) 1991 Massachusetts Institute of Technology
Infernal is distributed under the terms of the GNU General Public
License version 3 (GPLv3). See the file LICENSE for details.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or (at
your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
A copy of the GNU General Public License is in the file LICENSE. You
may also obtain a copy from <http://www.gnu.org/licenses/>.
This diff is collapsed.
#################################################################
# Infernal
# top level Makefile: installation, documentation
# CVS $Id: Makefile.in 2581 2008-09-18 13:37:59Z eddys $
#################################################################
# This copyrighted source code is freely distributed
# under the terms of the GNU General Public License. See
# the files COPYRIGHT and LICENSE for details.
#################################################################
# On most Unices, you can build the package without modifying anything
# by just typing "./configure; make".
#
# Post-configuration, you may still want to modify the following make variables:
# BINDIR - where the executables will be installed by a 'make install'
# MANDIR - where the man pages will be installed by a 'make install'
# CC - which compiler to use
# CFLAGS - compiler flags to use
# where you want things installed
# Sort of uses GNU coding standards. ${prefix} might be /usr/local.
# ${exec_prefix} gives you some flexibility for installing architecture
# dependent files (e.g. the programs): an example ${exec_prefix} might be
# /nfs/share/irix64/
#
prefix = @prefix@
exec_prefix = @exec_prefix@
BINDIR = @bindir@
MANDIR = @mandir@
DATAROOTDIR = @datarootdir@
# how to install the man pages;
# cp is generally fine, unless you preformat your pages.
#
INSTMAN = cp
MANSUFFIX = 1
# your compiler and compiler flags
#
CC = @CC@
CFLAGS = @CFLAGS@
SIMDFLAGS = @SIMD_CFLAGS@
#######
## You should not need to modify below this line.
## Some of it is concerned with maintenance of the development version
## and building the release (indeed, several commands will only work at
## Janelia)
#######
SHELL = /bin/sh
PACKAGE = @PACKAGE_NAME@
BASENAME = @PACKAGE_TARNAME@
RELEASE = @PACKAGE_VERSION@
RELEASEDATE = "@PACKAGE_DATE@"
COPYRIGHT = "@PACKAGE_COPYRIGHT@"
LICENSELINE = "@PACKAGE_LICENSE@"
LICENSETAG = gnu
COMPRESS = gzip
REPOSITORY = https://svn.janelia.org/eddylab/eddys/src/
# The program lists below for INFERNAL are not necessarily
# a complete manifest. They are the list of stable programs that the
# package will install. (The list in src/Makefile.in is the complete manifest
# of INFERNAL programs.)
#
PROGS = cmalign\
cmbuild\
cmcalibrate\
cmemit\
cmscore\
cmsearch\
cmstat
# Optional programs for rigorous filters
RFPROGS = cm2hmm cm2hmmsearch
# all: if we don't have precompiled binaries, compiles all packages,
# and moves the supported executables into binaries/ subdirectory.
#
#all: core $(RIGFILTERS)
all: core
core:
(cd easel; make CC="$(CC)" CFLAGS="$(CFLAGS)"; make)
(cd src; make CC="$(CC)" CFLAGS="$(CFLAGS)"; make module)
(cd testsuite; make CC="$(CC)" CFLAGS="$(CFLAGS)")
#.PHONY: $(RIGFILTERS)
#$(RIGFILTERS): core
# if test -d $(RIGFILTERS); then (cd rigfilters; make); fi
# dist: build a new distribution directory in infernal-$RELEASE
#
dist:
# Make sure we pointed the make dist to a subversion repository
@if test x${REPOSITORY} = 'x'; then\
echo "REPOSITORY isn't set; use make REPOSITORY=... dist";\
exit 1;\
fi
# Delete old versions of the same release
#
@if test -d ../${BASENAME}-$(RELEASE); then rm -rf ../${BASENAME}-$(RELEASE); fi
@if test -e ../${BASENAME}-$(RELEASE).tar; then rm -f ../${BASENAME}-$(RELEASE).tar; fi
@if test -e ../${BASENAME}-$(RELEASE).tar.Z; then rm -f ../${BASENAME}-$(RELEASE).tar.Z; fi
@if test -e ../${BASENAME}-$(RELEASE).tar.gz; then rm -f ../${BASENAME}-$(RELEASE).tar.gz; fi
#
# Export the release from Subversion control.
# Because we use svn:externals, this automatically exports
# the ssdk, and Easel libraries as well.
#
svn export ${REPOSITORY} ../${BASENAME}-${RELEASE}
#
# Make the configure scripts from configure.ac
#
(cd ../${BASENAME}-${RELEASE}; autoconf)
(cd ../${BASENAME}-${RELEASE}/easel; autoconf)
#
# We'll need a basic Makefiles for some steps; later
# we'll delete them
#
(cd ../${BASENAME}-${RELEASE}/; ./configure)
#
# Make symlinks and set file permissions
#
(cd ../${BASENAME}-${RELEASE}/testsuite; ln -s ../easel/devkit/sqc .)
find ../${BASENAME}-${RELEASE} -type f -exec chmod +r {} \;
chmod +x ../${BASENAME}-${RELEASE}/easel/devkit/sqc
chmod +x ../${BASENAME}-${RELEASE}/easel/devkit/autodoc
#
# Attach license stamps on all files that need 'em
# (e.g. replace LICENSE keyword everywhere)