Skip to content

Commit

Permalink
version 2.1.0
Browse files Browse the repository at this point in the history
version 2.1.0
  • Loading branch information
Martin Mann authored Oct 11, 2017
2 parents 02e272a + cb0d7d5 commit b47c79a
Show file tree
Hide file tree
Showing 36 changed files with 8,062 additions and 5,988 deletions.
75 changes: 75 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,4 +1,79 @@

version 2.1.0

171010 Martin Mann :
* README.md :
+ explicit seed description
* AccessibilityVrna :
* fillByConstraints() :
* fillByRNAup() :
* callbackForStorage() :
* BUGFIX : only check for block-constraint for region ends (is allowed to
contain a blocked subregion)

171009 Martin Mann :
* tests/*BasePair_test :
* explicit use of std::abs (should fix test error of github issue #91)
* BUGFIX: test values wrong (were derived from rounded values)
-> fixes github issue #91 (thanks to @sjannielefevre)
* AccessibilityBasePair :
* constructor() :
+ RT sanity check to avoid division by zero
* NussinovHandler :
+ printMatrix() : utility function for debug to see matrix content
* getQ(), getQb(), getPbp(), getPu() :
* BUGFIX : boundary checks partially wrong
+ explicit lower bound handling
+ SeedHandlerMfe : former SeedHandler implementation for mfe-seed access
* SeedHandler : now abstract interface
* Predictor*Seed :
* constructor() :
* takes now directly a SeedHandler instance instead of a SeedConstraint
* CommandLineParsing :
+ getSeedHandler() : provides the seed handler according to the user input
* getPredictor() :
* uses now getSeedHandler() to setup Predictor*Seed instances
+ '--seedTQ' argument for explicit seed encodings
* SeedHandlerMfe() :
* constructor() : sanity check in debug mode
+ SeedHandlerExplicit() : seed handler for explicitly defined seed interactions
+ checkSeedEncoding() : tests sanity of seed encoding
+ SeedData() : data structure that parses and holds explicit seed information
* SeedConstraint :
+ explicitSeeds + getter : explicit seed encodings to be used
+ tests/SeedHandlerExplicit :
+ test checkSeedEncoding()
+ test SeedData() parsing

171006 Martin Mann :
* AccessibilityVrna :
* fillByRNAup() :
* BUGFIX : have to check whether region is blocked not if constrained
* AccessibilityBasePair :
* AccessibilityFromStream :
+ "not implemented" notification if accessibility constraints given

171005 Martin Mann :
* configure.ac :
+ disable-log-coloring : sets INTARNA_LOG_COLORING for console log coloring
* bin/IntaRNA :
* colored log output depends now on INTARNA_LOG_COLORING macro
* IntaRNA/AccessibilityVrna :
+ callbackForStorage() : callback function to use new VRNA API
* fillByRNAplfold() : window-based PU computation via new VRNA API

171004 Martin Mann :
* configure.ac :
* bump minimal ViennaRNA version to 2.4.1 (for constraint interface)
* bump easylogging++ version to 9.95
+ easylogging preprocessor macros to get new version compiled
+ src/easylogging++.cc : source code of new easylogging++ version
+ src/easylogging++.LICENCE.txt : licence information of easylogging++
+ lib 'easylogging' since new version comes with source file
* tests : adaptation to new easylogging++ version and library
* bin/IntaRNA :
* adaptation to new easylogging++ version and library

version 2.0.5

170926 Martin Mann :
Expand Down
33 changes: 32 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ The following topics are covered by this documentation:
- [Prediction modes, their features and emulated tools](#predModes)
- [Interaction restrictions](#interConstr)
- [Seed constraints](#seed)
- [Explicit seed input](#seedExplicit)
- [Output modes](#outmodes)
- [Suboptimal RNA-RNA interaction prediction and output restrictions](#subopts)
- [Energy parameters and temperature](#energy)
Expand Down Expand Up @@ -129,7 +130,7 @@ dependencies:
- libboost_program_options
- libboost_filesystem
- libboost_system
- [Vienna RNA package](http://www.tbi.univie.ac.at/RNA/) version >= 2.3.0
- [Vienna RNA package](http://www.tbi.univie.ac.at/RNA/) version >= 2.4.1
- if [cloning from github](#instgithub): GNU autotools (automake, autoconf, ..)

Also used by IntaRNA, but already part of the source code distribution (and thus
Expand Down Expand Up @@ -295,6 +296,7 @@ to balance predication quality and runtime requirement. Furthermore, it is
possible to define
[interaction restrictions](#interConstr),
[seed constraints](#seed),
[explicit seed information](#seedExplicit),
[output modes](#outmodes),
[suboptimal enumeration](#subopts),
[energy parameters, temperature](#energy),
Expand Down Expand Up @@ -374,6 +376,7 @@ of equal length *n*.
| Time complexity (prediction only) | O(*n*^2) | O(*n*^4) | O(*n*^4) |
| Space complexity | O(*n*^2) | O(*n*^2) | O(*n*^4) |
| [Seed constraint](#seed) | x | x | x |
| [Explicit seeds](#seedExplicit) | x | x | x |
| No [seed constraint](#seed) | x | x | x |
| Minimum free energy interaction | not guaranteed | x | x |
| Overlapping [suboptimal interactions](#subopts) | x | x | x |
Expand Down Expand Up @@ -487,6 +490,34 @@ Seed constraint usage can be globally disabled using the `--noSeed` flag.



<br /><br />
<a name="seedExplicit" />
## Explicit seed input

Some experiments provide hints or explicit knowledge about the seed or
even provide details about some intermolecular base pairs formed between two RNAs.
This information can be incorporated into IntaRNA predictions by providing
*explicit seed information*. To this end, the `--seedQT` parameter can be used.
It takes a comma-separated list of seed string encodings in the format
`startTbpsT&startQbpsQ`, which is in the same format as the IntaRNA `hybridDB`
output (see below), i.e. e.g. `4|||.|&7||.||` to encode a seed interaction like
the following
```bash
target
4 8
| |
5'-AAAC C UGGUUUGG-3'
AC C C
|| | |
UG G G
3'-GGUU U CCCACAAA-5'
| |
11 7
query
```
If several or alternative seeds are known, you can provide all as a
comma-separated list and IntaRNA will consider all interactions that cover at
least one of them.


<br /><br />
Expand Down
32 changes: 30 additions & 2 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@

AC_PREREQ([2.65])
# 5 argument version only available with aclocal >= 2.64
AC_INIT( [IntaRNA], [2.0.5], [], [intaRNA], [http://www.bioinf.uni-freiburg.de] )
AC_INIT( [IntaRNA], [2.1.0], [], [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.3.0
VRNA_REQUIRED_VERSION=2.4.1


AC_CANONICAL_HOST
Expand Down Expand Up @@ -175,8 +175,36 @@ AS_IF([test "x$HAVE_DOXYGEN" = "xyes"], [
])

###############################################################################
# EASYLOGGING++
###############################################################################

# enable easylogging++ performance tracking
AM_CXXFLAGS="$AM_CXXFLAGS -DELPP_FEATURE_PERFORMANCE_TRACKING"
# disable default log file creation
AM_CXXFLAGS="$AM_CXXFLAGS -DELPP_NO_DEFAULT_LOG_FILE"

#############################
# COLORING SETUP
#############################

AC_MSG_CHECKING([whether to enable coloring of console log output])
logColoring=yes
AC_ARG_ENABLE([log-coloring],
[AS_HELP_STRING([--disable-log-coloring],
[disable console log coloring (def=enabled)])],
[logColoring="$enableval"])
AC_MSG_RESULT([$logColoring])
AS_IF([test x"$logColoring" = x"yes"], [
AC_DEFINE([INTARNA_LOG_COLORING], [1], [Enabling console log coloring])
AC_SUBST([INTARNA_LOG_COLORING],[1])
], [
AC_DEFINE([INTARNA_LOG_COLORING], [0], [Disabling console log coloring])
AC_SUBST([INTARNA_LOG_COLORING],[0])
])



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

###############################################################################
# BOOST CHECK
Expand Down
14 changes: 10 additions & 4 deletions src/IntaRNA/AccessibilityBasePair.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,20 @@ AccessibilityBasePair::AccessibilityBasePair(const RnaSequence& seq,
logPu(seq.size(), seq.size()),
basePairEnergy(bpEnergy),
RT(_RT),
basePairWeight(std::exp(-bpEnergy / _RT)),
basePairWeight( _RT == 0.0 ? 0.0 : std::exp(-bpEnergy / _RT) ),
minLoopLength(minLoopLen)
{
if (accConstr_ != NULL && !accConstr_->isEmpty()) {
INTARNA_NOT_IMPLEMENTED("AccessibilityBasePair: accessibility constraints not supported yet");
}
if (RT == 0.0) {
throw std::runtime_error("AccessibilityBasePair: RT == 0.0");
}
const size_t N = seq.size();
// create temporary matrices for ED computation
NussinovHandler::E2dMatrix Q(N, N);
NussinovHandler::E2dMatrix Qb(N, N);
NussinovHandler::P2dMatrix Ppb(N, N);
NussinovHandler::P2dMatrix Pbp(N, N);
NussinovHandler::P2dMatrix Pu(N, N);

logPu.resize(N, N);
Expand All @@ -32,14 +38,14 @@ AccessibilityBasePair::AccessibilityBasePair(const RnaSequence& seq,
for (size_t j = i; j < N; ++j) {
Q(i, j) = -1.0;
Qb(i, j) = -1.0;
Ppb(i, j) = -1.0;
Pbp(i, j) = -1.0;
Pu(i, j) = -1.0;
}
}
// compute ED values
for (size_t i = 0u; i < N; ++i) {
for (size_t j = i; j < N; ++j) {
logPu(i, j) = -RT * std::log(NussinovHandler::getPu(i, j, seq, basePairWeight, minLoopLength, Q, Qb, Ppb, Pu));
logPu(i, j) = -RT * std::log(NussinovHandler::getPu(i, j, seq, basePairWeight, minLoopLength, Q, Qb, Pbp, Pu));
}
}
}
Expand Down
3 changes: 3 additions & 0 deletions src/IntaRNA/AccessibilityFromStream.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ AccessibilityFromStream(
, edValues()
, availMaxLength( Accessibility::getMaxLength() )
{
if (accConstraint != NULL && !accConstraint->isEmpty()) {
INTARNA_NOT_IMPLEMENTED("AccessibilityFromStream: accessibility constraints not supported yet");
}
switch( inStreamType ) {

case Pu_RNAplfold_Text :
Expand Down
Loading

0 comments on commit b47c79a

Please sign in to comment.