Skip to content

Commit

Permalink
Merge pull request #172 from BackofenLab/dev
Browse files Browse the repository at this point in the history
v3.1.1
  • Loading branch information
martin-raden authored Sep 25, 2019
2 parents 31284e7 + 1907f3d commit 0477649
Show file tree
Hide file tree
Showing 18 changed files with 499 additions and 75 deletions.
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ script:
# generate autotools's files
- bash autotools-init.sh
# run configure
- ./configure --prefix=$HOME/IntaRNA --with-vrna=$HOME/miniconda/envs/build-IntaRNA --with-boost=no
- ./configure --prefix=$HOME/IntaRNA --with-vrna=$HOME/miniconda/envs/build-IntaRNA --with-boost=no --without-zlib
# compile documentation
# - make doxygen-doc
# compile, test and install IntaRNA
Expand Down
59 changes: 59 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,67 @@
# changes in development version since last release
################################################################################

# IntaRNA
- base pairs details only computed if needed for output (speedup for large -n)
- predefined parameter sets for loading (Turner04, Turner99, Andronescu07)
- 'tRegion' and 'qRegion' now available for and applied to multi-sequence input

################################################################################
################################################################################

190924 Martin Raden
* IntaRNA/general :
- numStringLength() : obsolete
* IntaRNA/OutputHandlerText :
+ explicit '+' for positive indices if relative indexing enabled
* bin/CommandLineParsing :
* validate_indexRangeList() :
+ sequence id in error message
* parseRegion() :
+ range check per sequence with sequence-specific error message
- single sequence input condition removed : ranges applied on all sequences
* IntaRNA/AccessibilityVrna :
* construction() :
+ bugfix: only call VRNA routines if seq.size() > 4

190923 Martin Raden
+ m4/m4-ax_boost_iostreams.m4
+ m4/m4-ax_check_zlib.m4
* configure.ac :
* ViennaRNA version >= 2.4.14
+ check for boost::iostreams library
+ check for zlib library
* IntaRNA/OutputConstraint :
+ needBPs : whether or not traceback of interaction base pairs is needed
* IntaRNA/PredictorMfe :
* reportOptima() :
+ traceback now optional based on OutputConstraint::needBPs
* IntaRNA/OutputHandlerCsv :
+ needBPs() : checks whether or not base pair information is needed for the
CSV columns to print
* IntaRNA/VrnaHandler :
+ Turner99 : const string representing RNA-Turner-1999 energy file
+ Turner04 : const string representing RNA-Turner-2004 energy file
+ Andronescu07 : const string representing RNA-Andronescu-2007 energy file
* constructor() :
* Turner04 = default parameter set
+ load of Turner99/04 and Andronescu07 parameters via new VRNA-2.4.14 API
* bin/CommandLineParsing :
+ outNeedsBPs : whether or not output requires interaction traceback
* energyVRNA :
+ docu of Turner99/04 and Andronescu07 predefined models for loading
+ default value = Turner04
* IntaRNA1 :
+ default energyVRNA = Turner99
* getOutputHandler() :
+ setup of outNeedsBPs
* IntaRNA/Interaction :
* dotBar : indexing based on RnaSequence::getInOutIndex()
* IntaRNA/OutputHandlerText :
* add() :
* bugfix: isGU() test was using non-transformed bp indices
* README.md :
+ docu of predefined parameter sets

################################################################################
### version 3.1.0.2
Expand Down
15 changes: 12 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ dependencies:
- libboost_program_options
- libboost_filesystem
- libboost_system
- [Vienna RNA package](http://www.tbi.univie.ac.at/RNA/) version >= 2.4.8
- [Vienna RNA package](http://www.tbi.univie.ac.at/RNA/) version >= 2.4.14
- `pkg-config` for detailed version checks of dependencies
- if [cloning from github](#instgithub): GNU autotools (automake, autoconf, ..)

Expand Down Expand Up @@ -1575,12 +1575,21 @@ If Vienna RNA package is used for energy computation (`--energy=V`), per default
the default parameter set of the linked Vienna RNA package is used (e.g. the
`Turner04` set for VRNA 3.0.0). If you want to use a different parameter set, you
can provide an according parameter file via `--energyVRNA=MyParamFile`. The
following example shows how to run an IntaRNA-v1-like prediction (via the
following example shows how to run an IntaRNA-v1-like prediction (default for the
`IntaRNA1` personality) using the old `Turner99` parameter set (as used by IntaRNA v1.*).
```bash
# IntaRNA v1.* like energy parameter setup
IntaRNA1 --energyVRNA=/usr/local/share/Vienna/rna_turner1999.par
IntaRNA --energyVRNA=Turner99
# alternative IntaRNA v1.* like energy parameter setup with explicit file
IntaRNA --energyVRNA=/usr/local/share/Vienna/rna_turner1999.par
```
IntaRNA provides the following predefined `--energyVRNA` values that load respective
parameter sets from the Vienna RNA package without explicit file specification:
- `Turner04` = `rna_turner2004.par`
- `Turner99` = `rna_turner1999.par`
- `Andronescu07` = `rna_andronescu2007.par`
If no value for `--energyVRNA` is provided, the default model of the underlying
Vienna RNA package is used (see respective documentation).

To increase prediction quality and to reduce the computational complexity, the
number of unpaired bases between intermolecular base pairs is restricted
Expand Down
8 changes: 6 additions & 2 deletions configure.ac
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@

AC_PREREQ([2.65])
# 5 argument version only available with aclocal >= 2.64
AC_INIT([IntaRNA], [3.1.0.2], [], [intaRNA], [http://www.bioinf.uni-freiburg.de] )
AC_INIT([IntaRNA], [3.1.1], [], [intaRNA], [http://www.bioinf.uni-freiburg.de] )

# minimal required version of the boost library
BOOST_REQUIRED_VERSION=1.50.0
# minimal required version of the Vienna RNA library
VRNA_REQUIRED_VERSION=2.4.8
VRNA_REQUIRED_VERSION=2.4.14
# minimal required version of python interpreter
PYTHON_REQUIRED_VERSION=3.6

Expand All @@ -24,6 +24,8 @@ m4_include([m4/m4-ax_boost_system.m4])
m4_include([m4/m4-ax_boost_filesystem.m4])
m4_include([m4/m4-ax_boost_program_options.m4])
m4_include([m4/m4-ax_boost_regex.m4])
m4_include([m4/m4-ax_boost_iostreams.m4])
m4_include([m4/m4-ax_check_zlib.m4])

lt_enable_auto_import=""
case "$host_os" in
Expand Down Expand Up @@ -293,6 +295,8 @@ AX_BOOST_SYSTEM
AX_BOOST_FILESYSTEM
AX_BOOST_PROGRAM_OPTIONS
AX_BOOST_REGEX
AX_BOOST_IOSTREAMS
AX_CHECK_ZLIB([], [])


############ CHECKS ############################################
Expand Down
116 changes: 116 additions & 0 deletions m4/m4-ax_boost_iostreams.m4
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
# ===========================================================================
# https://www.gnu.org/software/autoconf-archive/ax_boost_iostreams.html
# ===========================================================================
#
# SYNOPSIS
#
# AX_BOOST_IOSTREAMS
#
# DESCRIPTION
#
# Test for IOStreams library from the Boost C++ libraries. The macro
# requires a preceding call to AX_BOOST_BASE. Further documentation is
# available at <http://randspringer.de/boost/index.html>.
#
# This macro calls:
#
# AC_SUBST(BOOST_IOSTREAMS_LIB)
#
# And sets:
#
# HAVE_BOOST_IOSTREAMS
#
# LICENSE
#
# Copyright (c) 2008 Thomas Porschberg <[email protected]>
#
# Copying and distribution of this file, with or without modification, are
# permitted in any medium without royalty provided the copyright notice
# and this notice are preserved. This file is offered as-is, without any
# warranty.

#serial 22

AC_DEFUN([AX_BOOST_IOSTREAMS],
[
AC_ARG_WITH([boost-iostreams],
AS_HELP_STRING([--with-boost-iostreams@<:@=special-lib@:>@],
[use the IOStreams library from boost - it is possible to specify a certain library for the linker
e.g. --with-boost-iostreams=boost_iostreams-gcc-mt-d-1_33_1 ]),
[
if test "$withval" = "no"; then
want_boost="no"
elif test "$withval" = "yes"; then
want_boost="yes"
ax_boost_user_iostreams_lib=""
else
want_boost="yes"
ax_boost_user_iostreams_lib="$withval"
fi
],
[want_boost="yes"]
)
if test "x$want_boost" = "xyes"; then
AC_REQUIRE([AC_PROG_CC])
CPPFLAGS_SAVED="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
export CPPFLAGS
LDFLAGS_SAVED="$LDFLAGS"
LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
export LDFLAGS
AC_CACHE_CHECK(whether the Boost::IOStreams library is available,
ax_cv_boost_iostreams,
[AC_LANG_PUSH([C++])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <boost/iostreams/filtering_stream.hpp>
@%:@include <boost/range/iterator_range.hpp>
]],
[[std::string input = "Hello World!";
namespace io = boost::iostreams;
io::filtering_istream in(boost::make_iterator_range(input));
return 0;
]])],
ax_cv_boost_iostreams=yes, ax_cv_boost_iostreams=no)
AC_LANG_POP([C++])
])
if test "x$ax_cv_boost_iostreams" = "xyes"; then
AC_DEFINE(HAVE_BOOST_IOSTREAMS,,[define if the Boost::IOStreams library is available])
BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'`
if test "x$ax_boost_user_iostreams_lib" = "x"; then
for libextension in `ls $BOOSTLIBDIR/libboost_iostreams*.so* $BOOSTLIBDIR/libboost_iostream*.dylib* $BOOSTLIBDIR/libboost_iostreams*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^lib\(boost_iostreams.*\)\.so.*$;\1;' -e 's;^lib\(boost_iostream.*\)\.dylib.*$;\1;' -e 's;^lib\(boost_iostreams.*\)\.a.*$;\1;'` ; do
ax_lib=${libextension}
AC_CHECK_LIB($ax_lib, exit,
[BOOST_IOSTREAMS_LIB="-l$ax_lib"; AC_SUBST(BOOST_IOSTREAMS_LIB) link_iostreams="yes"; break],
[link_iostreams="no"])
done
if test "x$link_iostreams" != "xyes"; then
for libextension in `ls $BOOSTLIBDIR/boost_iostreams*.dll* $BOOSTLIBDIR/boost_iostreams*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^\(boost_iostreams.*\)\.dll.*$;\1;' -e 's;^\(boost_iostreams.*\)\.a.*$;\1;'` ; do
ax_lib=${libextension}
AC_CHECK_LIB($ax_lib, exit,
[BOOST_IOSTREAMS_LIB="-l$ax_lib"; AC_SUBST(BOOST_IOSTREAMS_LIB) link_iostreams="yes"; break],
[link_iostreams="no"])
done
fi
else
for ax_lib in $ax_boost_user_iostreams_lib boost_iostreams-$ax_boost_user_iostreams_lib; do
AC_CHECK_LIB($ax_lib, main,
[BOOST_IOSTREAMS_LIB="-l$ax_lib"; AC_SUBST(BOOST_IOSTREAMS_LIB) link_iostreams="yes"; break],
[link_iostreams="no"])
done
fi
if test "x$ax_lib" = "x"; then
AC_MSG_ERROR(Could not find a version of the Boost::IOStreams library!)
fi
if test "x$link_iostreams" != "xyes"; then
AC_MSG_ERROR(Could not link against $ax_lib !)
fi
fi
CPPFLAGS="$CPPFLAGS_SAVED"
LDFLAGS="$LDFLAGS_SAVED"
fi
])
Loading

0 comments on commit 0477649

Please sign in to comment.