As requested by @ceheitsch, this issue documents the main changes to the source code in the fall of 2020 in pull request #2 . The motivation for these changes is to make the previously historical PMFE code compile for use on the newer GA Tech math machines for scientific computing and testing work. Note that there is also a separate branch created around this time to enable the same source code base to compile on a modern MacOS desktop (10.14 -- Mojave era release). The changes to the latter branch are only to documentation and the Makefile for that branch, and did not require any substantial modifications to be noticed in the C++ source code, e.g., only changes were made to the build process and not to any possible functionality that the code logic performs.
Summary of changes made to support / merge the pull request
The following is a brief overview of changes required to make pull request #2 happen:
Documentation: Instructions for how to configure and compile the updated PMFE code in a user's local home directory on the SOM Linux boxes have been documented here. This constitutes only a superficial change to the code base.
Build process changes: The Makefile has been updated. As emphasized above, other than a few ways in which defines enable some functionality (not feature set) in the boost libraries, these proposed changes should not alter the logic performed by the compiled PMFE code at all.
Minor C++ sources changed: Some of the Boost library defines that were initially declared in the C++/header source files, for example with #define BOOST_LOG_DYN_LINK 1 have been removed. It is much simpler, cleaner, and easier to define these settings globally by passing them as compiler options (CFLAGS) to the source files via the Makefile (see above). Again, this is only a superficial change to the code.
Semi-small changes to the source: These changes are documented by the diffs summary in this commit log. Functionally, this should be just a small syntactical change to the code whereby we fix changes to the CGAL library code that have arisen over time. The intent is to just update the definitions of the functions so that the sources now compile without changing the meaning of what the original calls to these functions with the parameters added actually have done historically. See below for additional notes on verifying these changes.
Notes on testing the modifications
Why (I surmise) that the C++ source code modifications were necessary
It appears based on inspection of the most recent CGAL library sources, which are these days all header based aside from requisite Boost library support being enabled, that the historical PMFE code took an older version of one of the CGAL headers and made custom modifications to it. For comparison, a copy of the most recent header file contents is reproduced below to emphasize the difference with the customizations (location: Convex_hull_d/include/CGAL/Regular_complex_d.h):
Note the form of the calls to void* & for_compact_container(void *) function (now with the custom parameter defined in the header file).
Preliminary testing and verification of PMFE output consistency
When the PMFE sources are compiled, a SageMath specific object file to support a Python library is built. Several standalone binaries are also produced. One of these binaries is called pmfe-test (source file is here). Based on my read of the contents, this implementation is provided as a unit test functionality added to maintain consistency of the outputs produced by the PMFE code over time. Here is the output of running that sub-utility on math-mulberry (using the custom local wrapper script I created):
$ ./RunPMFECommand.sh pmfe-tests -l
All available test cases:
A. tabira 5S MFE
[5S][atabira][biological][mfe]
C. diphtheriae tRNA MFE
[biological][cdiphtheriae][mfe][tRNA]
D. mobilis 5S MFE
[5S][biological][dmobilis][mfe]
E. coli 5S MFE
[5S][biological][ecoli][mfe]
G. arboreum 5S MFE
[5S][biological][garboreum][mfe]
H. sapiens tRNA MFE
[biological][hsapiens][mfe][tRNA]
L. delbrueckii tRNA MFE
[biological][ldelbrueckii][mfe][tRNA]
O. nivara tRNA MFE
[biological][mfe][onivara][tRNA]
R. norvegicus 5S MFE
[5S][biological][mfe][rnorvegicus]
S. tokodaii tRNA MFE
[biological][mfe][stokodaii][tRNA]
A. suum 16S MFE
[16S][asuum][biological][mfe]
B. bigemina 16S MFE
[16S][bbigemina][biological][mfe]
C. elegans 16S MFE
[16S][biological][celegans][mfe]
E. cuniculu 16S MFE
[16S][biological][ecuniculi][mfe]
E. hexamita 16S MFE
[16S][biological][ehexamita][mfe]
G. ardaea 16S MFE
[16S][biological][gardaea][mfe]
G. intestinalis 16S MFE
[16S][biological][gintestinalis][mfe]
G. muris 16S MFE
[16S][biological][gmuris][mfe]
H. volcanii 16S MFE
[16S][biological][hvolcanii][mfe]
V. necatrix 16S MFE
[16S][biological][mfe][vnecatrix]
Z. mays 16S MFE
[16S][biological][mfe][zmays]
Combinatorial sequence MFE
[combinatorial][mfe][synthetic]
Randomly generated sequence MFE
[mfe][random][synthetic]
O. nivara tRNA (old) MFE
[biological][mfe][onivara-old][trna]
24 test cases
$ ./RunPMFECommand.sh pmfe-tests -s -a
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pmfe-tests is a Catch v1.1 b14 (develop) host application.
Run with -? for options
-------------------------------------------------------------------------------
A. tabira 5S MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:14
...............................................................................
src/test-pmfe.cc:20:
PASSED:
REQUIRE( seq.len() == 120 )
with expansion:
120 == 120
-------------------------------------------------------------------------------
A. tabira 5S MFE
Turner99 published parameters
-------------------------------------------------------------------------------
src/test-pmfe.cc:14
...............................................................................
src/test-pmfe.cc:30:
PASSED:
REQUIRE( energy == pmfe::Rational(-533, 10) )
with expansion:
-533/10 == -533/10
src/test-pmfe.cc:34:
PASSED:
REQUIRE( scored_structure.old_string() == "(((((((((.....((((((((((...((.((((......))))..))..)))...)))))))..(((((((...(.((..(..((....))..)..)))..)))))))))))))))).." )
with expansion:
"(((((((((.....((((((((((...((.((((......))))..))..)))...)))))))..(((((((...(
.((..(..((....))..)..)))..)))))))))))))))).."
==
"(((((((((.....((((((((((...((.((((......))))..))..)))...)))))))..(((((((...(
.((..(..((....))..)..)))..)))))))))))))))).."
-------------------------------------------------------------------------------
C. diphtheriae tRNA MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:39
...............................................................................
src/test-pmfe.cc:45:
PASSED:
REQUIRE( seq.len() == 74 )
with expansion:
74 == 74
-------------------------------------------------------------------------------
C. diphtheriae tRNA MFE
Turner99 published parameters
-------------------------------------------------------------------------------
src/test-pmfe.cc:39
...............................................................................
src/test-pmfe.cc:55:
PASSED:
REQUIRE( energy == pmfe::Rational(-35) )
with expansion:
-35 == -35
src/test-pmfe.cc:59:
PASSED:
REQUIRE( scored_structure.old_string() == "((((((((((.(.(.((((...((.(((.(((((((....)))).))).))).)))))).))))).)))))))." )
with expansion:
"((((((((((.(.(.((((...((.(((.(((((((....)))).))).))).)))))).))))).)))))))."
==
"((((((((((.(.(.((((...((.(((.(((((((....)))).))).))).)))))).))))).)))))))."
-------------------------------------------------------------------------------
D. mobilis 5S MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:64
...............................................................................
src/test-pmfe.cc:70:
PASSED:
REQUIRE( seq.len() == 133 )
with expansion:
133 == 133
-------------------------------------------------------------------------------
D. mobilis 5S MFE
Turner99 published parameters
-------------------------------------------------------------------------------
src/test-pmfe.cc:64
...............................................................................
src/test-pmfe.cc:80:
PASSED:
REQUIRE( energy == pmfe::Rational(-463, 5) )
with expansion:
-463/5 == -463/5
src/test-pmfe.cc:84:
PASSED:
REQUIRE( scored_structure.old_string() == "..(((((((((((((((....((((((((..(((..((((..(((...)))..))))..)))...)))))))).((((((((((.((((((.((....)))))))).)))))))))))))))).)))))))))" )
with expansion:
"..(((((((((((((((....((((((((..(((..((((..(((...)))..))))..)))...)))))))).((
((((((((.((((((.((....)))))))).)))))))))))))))).)))))))))"
==
"..(((((((((((((((....((((((((..(((..((((..(((...)))..))))..)))...)))))))).((
((((((((.((((((.((....)))))))).)))))))))))))))).)))))))))"
-------------------------------------------------------------------------------
E. coli 5S MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:89
...............................................................................
src/test-pmfe.cc:95:
PASSED:
REQUIRE( seq.len() == 120 )
with expansion:
120 == 120
-------------------------------------------------------------------------------
E. coli 5S MFE
Turner99 published parameters
-------------------------------------------------------------------------------
src/test-pmfe.cc:89
...............................................................................
src/test-pmfe.cc:105:
PASSED:
REQUIRE( energy == pmfe::Rational(-549,10) )
with expansion:
-549/10 == -549/10
src/test-pmfe.cc:109:
PASSED:
REQUIRE( scored_structure.old_string() == "((((((((((.........((((....)))).((((((((((.....(((....)))...(((((.......))))).))))))))))..(((.(((....))))))..))))))))))." )
with expansion:
"((((((((((.........((((....)))).((((((((((.....(((....)))...(((((......
.))))).))))))))))..(((.(((....))))))..))))))))))."
==
"((((((((((.........((((....)))).((((((((((.....(((....)))...(((((......
.))))).))))))))))..(((.(((....))))))..))))))))))."
-------------------------------------------------------------------------------
G. arboreum 5S MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:114
...............................................................................
src/test-pmfe.cc:120:
PASSED:
REQUIRE( seq.len() == 120 )
with expansion:
120 == 120
-------------------------------------------------------------------------------
G. arboreum 5S MFE
Turner99 published parameters
-------------------------------------------------------------------------------
src/test-pmfe.cc:114
...............................................................................
src/test-pmfe.cc:130:
PASSED:
REQUIRE( energy == pmfe::Rational(-407, 10) )
with expansion:
-407/10 == -407/10
src/test-pmfe.cc:134:
PASSED:
REQUIRE( scored_structure.old_string() == "(((((((((...((.((.(((....................(((((..(.((((((....)))))).).)))))...((((((.((....))))))))..))).)).))))))))))).." )
with expansion:
"(((((((((...((.((.(((....................(((((..(.((((((....)))))).).)))))..
.((((((.((....))))))))..))).)).))))))))))).."
==
"(((((((((...((.((.(((....................(((((..(.((((((....)))))).).)))))..
.((((((.((....))))))))..))).)).))))))))))).."
-------------------------------------------------------------------------------
H. sapiens tRNA MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:139
...............................................................................
src/test-pmfe.cc:145:
PASSED:
REQUIRE( seq.len() == 72 )
with expansion:
72 == 72
-------------------------------------------------------------------------------
H. sapiens tRNA MFE
Turner99 published parameters
-------------------------------------------------------------------------------
src/test-pmfe.cc:139
...............................................................................
src/test-pmfe.cc:155:
PASSED:
REQUIRE( energy == pmfe::Rational(-263, 10) )
with expansion:
-263/10 == -263/10
src/test-pmfe.cc:159:
PASSED:
REQUIRE( scored_structure.old_string() == "((((.....)))).((((((.((.(((((((((..((((....))))..))).))))))))...)))))).." )
with expansion:
"((((.....)))).((((((.((.(((((((((..((((....))))..))).))))))))...)))))).."
==
"((((.....)))).((((((.((.(((((((((..((((....))))..))).))))))))...)))))).."
-------------------------------------------------------------------------------
L. delbrueckii tRNA MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:164
...............................................................................
src/test-pmfe.cc:170:
PASSED:
REQUIRE( seq.len() == 72 )
with expansion:
72 == 72
-------------------------------------------------------------------------------
L. delbrueckii tRNA MFE
Turner99 published parameters
-------------------------------------------------------------------------------
src/test-pmfe.cc:164
...............................................................................
src/test-pmfe.cc:180:
PASSED:
REQUIRE( energy == pmfe::Rational(-239, 10) )
with expansion:
-239/10 == -239/10
src/test-pmfe.cc:184:
PASSED:
REQUIRE( scored_structure.old_string() == "(((((((...............(((.(((((.......))))).)))..(((.......)))..)))))))." )
with expansion:
"(((((((...............(((.(((((.......))))).)))..(((.......)))..)))))))."
==
"(((((((...............(((.(((((.......))))).)))..(((.......)))..)))))))."
-------------------------------------------------------------------------------
O. nivara tRNA MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:189
...............................................................................
src/test-pmfe.cc:195:
PASSED:
REQUIRE( seq.len() == 73 )
with expansion:
73 == 73
-------------------------------------------------------------------------------
O. nivara tRNA MFE
Turner99 published parameters
-------------------------------------------------------------------------------
src/test-pmfe.cc:189
...............................................................................
src/test-pmfe.cc:205:
PASSED:
REQUIRE( energy == pmfe::Rational(-271, 10) )
with expansion:
-271/10 == -271/10
src/test-pmfe.cc:209:
PASSED:
REQUIRE( scored_structure.old_string() == "(((((((..((((........))))((((((.......))))))....(((((.......))))))))))))." )
with expansion:
"(((((((..((((........))))((((((.......))))))....(((((.......))))))))))))."
==
"(((((((..((((........))))((((((.......))))))....(((((.......))))))))))))."
-------------------------------------------------------------------------------
R. norvegicus 5S MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:214
...............................................................................
src/test-pmfe.cc:220:
PASSED:
REQUIRE( seq.len() == 123 )
with expansion:
123 == 123
-------------------------------------------------------------------------------
R. norvegicus 5S MFE
Turner99 published parameters
-------------------------------------------------------------------------------
src/test-pmfe.cc:214
...............................................................................
src/test-pmfe.cc:230:
PASSED:
REQUIRE( energy == pmfe::Rational(-539, 10) )
with expansion:
-539/10 == -539/10
src/test-pmfe.cc:234:
PASSED:
REQUIRE( scored_structure.old_string() == "(((((((((....((((((((...((..((((..((....))..))))..))....)))))).))(((((((...(.((..(.(((....))).)..)))..))))))))))))))))....." )
with expansion:
"(((((((((....((((((((...((..((((..((....))..))))..))....)))))).))(((((((...(
.((..(.(((....))).)..)))..))))))))))))))))....."
==
"(((((((((....((((((((...((..((((..((....))..))))..))....)))))).))(((((((...(
.((..(.(((....))).)..)))..))))))))))))))))....."
-------------------------------------------------------------------------------
S. tokodaii tRNA MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:239
...............................................................................
src/test-pmfe.cc:245:
PASSED:
REQUIRE( seq.len() == 74 )
with expansion:
74 == 74
-------------------------------------------------------------------------------
S. tokodaii tRNA MFE
Turner99 published parameters
-------------------------------------------------------------------------------
src/test-pmfe.cc:239
...............................................................................
src/test-pmfe.cc:255:
PASSED:
REQUIRE( energy == pmfe::Rational(-79, 2) )
with expansion:
-79/2 == -79/2
src/test-pmfe.cc:259:
PASSED:
REQUIRE( scored_structure.old_string() == "((((((((.((((.((...)).))))..((((.(((.((((((.......)))))).))).))))))))))))." )
with expansion:
"((((((((.((((.((...)).))))..((((.(((.((((((.......)))))).))).))))))))))))."
==
"((((((((.((((.((...)).))))..((((.(((.((((((.......)))))).))).))))))))))))."
-------------------------------------------------------------------------------
A. suum 16S MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:264
...............................................................................
src/test-pmfe.cc:270:
PASSED:
REQUIRE( seq.len() == 701 )
with expansion:
701 == 701
-------------------------------------------------------------------------------
A. suum 16S MFE
Turner99 published parameters
-------------------------------------------------------------------------------
src/test-pmfe.cc:264
...............................................................................
src/test-pmfe.cc:280:
PASSED:
REQUIRE( energy == pmfe::Rational(-149) )
with expansion:
-149 == -149
src/test-pmfe.cc:284:
PASSED:
REQUIRE( scored_structure.old_string() == "..((((.....))))...(((((((((((..............((((((..((.....))..))))))))))))))))).........((.(((((((....((((((..(((((..(((((.((((((((((((((......(((((.((((.((((......)))).)))).)))))(((..(((((..((((((...((.((((((....((((((((..(((((.........)))))..))))))))....)))))).)).......((((((........))))))..)))))).)))))..))).))))))))))).))).)))))..))))).....((((.((((((((((...(((..(((((..(((.((...((((....))))...))..(((((((.(((.((.((.((((....(((((((((.....((.(((..((((.((......)).))))..))).)))))))))))..)))).)))).)))))))))).....)))..))))......((((.((((.((.(((((((((....))))))).....)).)).)))).))))...................)..)))...))))))))))((..........))......)))).))))))....))))))).))..(.((((((((((....)))))))))).)....." )
with expansion:
"..((((.....))))...(((((((((((..............((((((..((.....)).
.))))))))))))))))).........((.(((((((....((((((..(((((..(((((.((((((((((((((.
.....(((((.((((.((((......)))).)))).)))))(((..(((((..((((((...((.((((((....((
((((((..(((((.........)))))..))))))))....)))))).)).......((((((........))))))
..)))))).)))))..))).))))))))))).))).)))))..))))).....((((.((((((((((...(((..(
((((..(((.((...((((....))))...))..(((((((.(((.((.((.((((....(((((((((.....((.
(((..((((.((......)).))))..))).)))))))))))..)))).)))).)))))))))).....))).
.))))......((((.((((.((.(((((((((....))))))).....)).)).)))).)))).............
......)..)))...))))))))))((..........))......)))).))))))....))))))).))..(.(((
(((((((....)))))))))).)....."
==
"..((((.....))))...(((((((((((..............((((((..((.....)).
.))))))))))))))))).........((.(((((((....((((((..(((((..(((((.((((((((((((((.
.....(((((.((((.((((......)))).)))).)))))(((..(((((..((((((...((.((((((....((
((((((..(((((.........)))))..))))))))....)))))).)).......((((((........))))))
..)))))).)))))..))).))))))))))).))).)))))..))))).....((((.((((((((((...(((..(
((((..(((.((...((((....))))...))..(((((((.(((.((.((.((((....(((((((((.....((.
(((..((((.((......)).))))..))).)))))))))))..)))).)))).)))))))))).....))).
.))))......((((.((((.((.(((((((((....))))))).....)).)).)))).)))).............
......)..)))...))))))))))((..........))......)))).))))))....))))))).))..(.(((
(((((((....)))))))))).)....."
-------------------------------------------------------------------------------
B. bigemina 16S MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:289
...............................................................................
src/test-pmfe.cc:295:
PASSED:
REQUIRE( seq.len() == 1701 )
with expansion:
1701 == 1701
-------------------------------------------------------------------------------
B. bigemina 16S MFE
Turner99 published parameters
-------------------------------------------------------------------------------
src/test-pmfe.cc:289
...............................................................................
src/test-pmfe.cc:305:
PASSED:
REQUIRE( energy == pmfe::Rational(-573) )
with expansion:
-573 == -573
src/test-pmfe.cc:309:
PASSED:
REQUIRE( scored_structure.old_string() == "(((......((((..(((((((((((((((.((.(((((.((.((((.....)))).)).))))).....((.((((((......(((((((((..((((((..(((..(((((((((..((((((.(((((......))))).))).))).....))))))).(((((((((......((..(((....)))..))..)))))))))................((((((((.(((.....))).))))))))..))..)))..)))))).)))))).))).....))))))))....)).))))))).(((((((((.(((((((((.....(((((((........((((..((((((((((........)))).)).).)))..))))(((.((.(((((....((((((...(((((...))))).))))))...................((((((..(((((.(((((((.((..((((((.(.....).))))))..)).))))))).))))))))))).))))).)).)))....))))))).(((.....))).........))))))))).(((......((((.(((........((((..(((......(((.......)))......))).))))........))).)))).......(((((((.(((((((....))).))))))))))).)))..((((((((((((((((((....))))))))))))).)))))..))))))))).((((((((..(((((......(((((((((.((((((.(((.((((......)))).)))..)))))).)))))....(((....)))..)))).....)))))..))))))))..(((....)))..)))))))).(((..((((((..(((((((.((((..(((..((((.....((((.((..(((((((..(((.......))).)))))))..))....((....))..))))....)))).))).)))).))))).))...))))))......(((((((..(.((((((((.((..(((((.....))))).)).((((((((.........((....))......(((((..((...))..)))))..))))))))..)))))))))..)))))))(((((((((((((.(((.((..((((((((..(.((.....((((.(((.....((....))))).))))....)))..))))))))..))..((((((..(((((((.(((..(((((.....((((..(((.....)))..))))..((((((((((...(((....)))..)).))))))))...)))))..))).((((((((....((((....)))).((.((..((...(((....)))..))..)).)).)))))))).(((((...(((((((.......)))))))....))))))))))))..........(((((((((.....)))))))))....))))))..)))...))))).))))))))....(((((.((....(((((((..(((..((....(...((..(((....((((....))))....)))..))...)....))..)))..)))))))...)).)))))..)))......))))(((((((((....)))))))))...)))..." )
with expansion:
"(((......((((..(((((((((((((((.((.(((((.((.((((.....)))).)).))))).....((.(((
(((......(((((((((..((((((..(((..(((((((((..((((((.(((((......))))).))).)))..
...))))))).(((((((((......((..(((....)))..))..)))))))))................((((((
((.(((.....))).))))))))..))..)))..)))))).)))))).))).....))))))))....))
.))))))).(((((((((.(((((((((.....(((((((........((((..((((((((((........))))
.)).).)))..))))(((.((.(((((....((((((...(((((...))))).)))))).................
..((((((..(((((.(((((((.((..((((((.(.....).))))))..)).))))))).)))))))))))
.))))).)).)))....))))))).(((.....))).........))))))))).(((......((((.(((.....
...((((..(((......(((.......)))......))).))))........))).)))).......(((((((.(
((((((....))).))))))))))).)))..((((((((((((((((((....))))))))))))).))))).
.))))))))).((((((((..(((((......(((((((((.((((((.(((.((((......)))).))).
.)))))).)))))....(((....)))..)))).....)))))..))))))))..(((....)))..)))))))).(
((..((((((..(((((((.((((..(((..((((.....((((.((..(((((((..(((.......)))
.)))))))..))....((....))..))))....)))).))).)))).))))).))...))))))......((((((
(..(.((((((((.((..(((((.....))))).)).((((((((.........((....))......(((((..((
...))..)))))..))))))))..)))))))))..)))))))(((((((((((((.(((.((..((((((((..(.(
(.....((((.(((.....((....))))).))))....)))..))))))))..))..((((((..(((((((.(((
..(((((.....((((..(((.....)))..))))..((((((((((...(((....)))..)).))))))))..
.)))))..))).((((((((....((((....)))).((.((..((...(((....)))..))..)).))
.)))))))).(((((...(((((((.......)))))))....))))))))))))..........(((((((((...
..)))))))))....))))))..)))...))))).))))))))....(((((.((....(((((((..(((..((..
..(...((..(((....((((....))))....)))..))...)....))..)))..)))))))...)).))))).
.)))......))))(((((((((....)))))))))...)))..."
==
"(((......((((..(((((((((((((((.((.(((((.((.((((.....)))).)).))))).....((.(((
(((......(((((((((..((((((..(((..(((((((((..((((((.(((((......))))).))).)))..
...))))))).(((((((((......((..(((....)))..))..)))))))))................((((((
((.(((.....))).))))))))..))..)))..)))))).)))))).))).....))))))))....))
.))))))).(((((((((.(((((((((.....(((((((........((((..((((((((((........))))
.)).).)))..))))(((.((.(((((....((((((...(((((...))))).)))))).................
..((((((..(((((.(((((((.((..((((((.(.....).))))))..)).))))))).)))))))))))
.))))).)).)))....))))))).(((.....))).........))))))))).(((......((((.(((.....
...((((..(((......(((.......)))......))).))))........))).)))).......(((((((.(
((((((....))).))))))))))).)))..((((((((((((((((((....))))))))))))).))))).
.))))))))).((((((((..(((((......(((((((((.((((((.(((.((((......)))).))).
.)))))).)))))....(((....)))..)))).....)))))..))))))))..(((....)))..)))))))).(
((..((((((..(((((((.((((..(((..((((.....((((.((..(((((((..(((.......)))
.)))))))..))....((....))..))))....)))).))).)))).))))).))...))))))......((((((
(..(.((((((((.((..(((((.....))))).)).((((((((.........((....))......(((((..((
...))..)))))..))))))))..)))))))))..)))))))(((((((((((((.(((.((..((((((((..(.(
(.....((((.(((.....((....))))).))))....)))..))))))))..))..((((((..(((((((.(((
..(((((.....((((..(((.....)))..))))..((((((((((...(((....)))..)).))))))))..
.)))))..))).((((((((....((((....)))).((.((..((...(((....)))..))..)).))
.)))))))).(((((...(((((((.......)))))))....))))))))))))..........(((((((((...
..)))))))))....))))))..)))...))))).))))))))....(((((.((....(((((((..(((..((..
..(...((..(((....((((....))))....)))..))...)....))..)))..)))))))...)).))))).
.)))......))))(((((((((....)))))))))...)))..."
-------------------------------------------------------------------------------
C. elegans 16S MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:314
...............................................................................
src/test-pmfe.cc:320:
PASSED:
REQUIRE( seq.len() == 697 )
with expansion:
697 == 697
-------------------------------------------------------------------------------
C. elegans 16S MFE
Turner99 published parameters
-------------------------------------------------------------------------------
src/test-pmfe.cc:314
...............................................................................
src/test-pmfe.cc:330:
PASSED:
REQUIRE( energy == pmfe::Rational(-285, 2) )
with expansion:
-285/2 == -285/2
src/test-pmfe.cc:334:
PASSED:
REQUIRE( scored_structure.old_string() == "...((((..(.....)..)))).......(((((.((((((.((((((..........)))))))))))))))))..........(((((....(((..(((.(((((((....((((....(((..(((((((((..(((((.(((..((..((....))..))..((((((.(((.((((((((((((((((((..........((((((((..........))))))))...))))))..)))))))))..))).))).))))))...))).)))))....))))...)))))..)))....)))).(((......(((((((....(((..((....))..)))...(((((.((.(((((..(((((..(((.((...((((....)))).......(((((.((...(((.((.(((((...((((((((((...(((((((((.........))))))))).....)))))))))).))))).)))))...)).)))))..)))))..)))..........(((((((.(((((((...(((((....)))))....(((((.....)))))..))))))).)))))))..))..))))).)).)))))..)))))))....)))...)))))))...)))..)))..))))).....(.((((((((((....)))))))))).)...." )
with expansion:
"...((((..(.....)..)))).......(((((.((((((.((((((..........))))))))))))))))).
.........(((((....(((..(((.(((((((....((((....(((..(((((((((..(((((.(((..((..
((....))..))..((((((.(((.((((((((((((((((((..........((((((((.........
.))))))))...))))))..)))))))))..))).))).))))))...))).)))))....))))...))))).
.)))....)))).(((......(((((((....(((..((....))..)))...(((((.((.(((((..(((((..
(((.((...((((....)))).......(((((.((...(((.((.(((((...((((((((((...(((((((((.
........))))))))).....)))))))))).))))).)))))...)).)))))..)))))..)))..........
(((((((.(((((((...(((((....)))))....(((((.....)))))..))))))).)))))))..)).
.))))).)).)))))..)))))))....)))...)))))))...)))..)))..))))).....(.((((((((((.
...)))))))))).)...."
==
"...((((..(.....)..)))).......(((((.((((((.((((((..........))))))))))))))))).
.........(((((....(((..(((.(((((((....((((....(((..(((((((((..(((((.(((..((..
((....))..))..((((((.(((.((((((((((((((((((..........((((((((.........
.))))))))...))))))..)))))))))..))).))).))))))...))).)))))....))))...))))).
.)))....)))).(((......(((((((....(((..((....))..)))...(((((.((.(((((..(((((..
(((.((...((((....)))).......(((((.((...(((.((.(((((...((((((((((...(((((((((.
........))))))))).....)))))))))).))))).)))))...)).)))))..)))))..)))..........
(((((((.(((((((...(((((....)))))....(((((.....)))))..))))))).)))))))..)).
.))))).)).)))))..)))))))....)))...)))))))...)))..)))..))))).....(.((((((((((.
...)))))))))).)...."
-------------------------------------------------------------------------------
E. cuniculu 16S MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:339
...............................................................................
src/test-pmfe.cc:345:
PASSED:
REQUIRE( seq.len() == 1295 )
with expansion:
1295 == 1295
-------------------------------------------------------------------------------
E. cuniculu 16S MFE
Turner99 published parameters
-------------------------------------------------------------------------------
src/test-pmfe.cc:339
...............................................................................
src/test-pmfe.cc:355:
PASSED:
REQUIRE( energy == pmfe::Rational(-487) )
with expansion:
-487 == -487
src/test-pmfe.cc:359:
PASSED:
REQUIRE( scored_structure.old_string() == "........(((((((((.(((.((...(((.((((((((((((((((.....(((((((.((((((..(..((((....((((((((.((((((....)))..))).)))))))).....((.((.((.((((((....)))))).)).)).))..))))..))))))).)))))))..(((((..((..((.((...((((((((.......))))))))...)).))..)).)))))........))))))))))))))))((.((((((...(((((.(((((((((((.(.(..((.(((.(((((..((((((((..(((....))))))).........))))..))))).)))..(..((((((.((((((...(((((..(((((..(..(.(((.((((.((((.(((((((...........)))).))).)))).))))))).)..)..))))).)))))...)))).)).))))))..)............))..).).)))))))))))..(((((((.((((((((.((((((((.(((...((.(.(....).).))..(((....((((.((.((.((.(((((((((..(((..((((((.(((((((.(((.(......))))...((.((...(((((....)))))...))))...))))))).)).))))......)))...(((((((.((.....)).)))))))......((((...((((((...(((((..((((((..((((....))))...))).......)))..))))).....((((.....)))).(((((((((((.......((((.(.(((((((.....((.((((((.((((((((...((((.((((.(((..(....(((((.(((...))).)))))......)..))).)))).)))).((((((.....(....)...))))))........)))))))).))))))..)).(((..((........))..)))....))))))).).))))..)))))))))))))))))...))))..))))))))).)))))).))))..((((((.(....).))))))....))).....))).......(((((((.....)))))))......)))))))))))))))))))))))...)))))..(((((.(..((((((.(.((((..(((((....)))))..)))).).))))))..).)))))..........)).)))).))..)))....)).))))))))))))..." )
with expansion:
"........(((((((((.(((.((...(((.((((((((((((((((.....(((((((.((((((..(..((((.
...((((((((.((((((....)))..))).)))))))).....((.((.((.((((((....)))))).)).))
.))..))))..))))))).)))))))..(((((..((..((.((...((((((((.......))))))))...))
.))..)).)))))........))))))))))))))))((.((((((...(((((.(((((((((((.(.(..((.((
(.(((((..((((((((..(((....))))))).........))))..))))).)))..(..((((((.((((((..
.(((((..(((((..(..(.(((.((((.((((.(((((((...........)))).))).)))).))))))).).
.)..))))).)))))...)))).)).))))))..)............))..).).)))))))))))..(((((((.(
(((((((.((((((((.(((...((.(.(....).).))..(((....((((.((.((.((.(((((((((..(((.
.((((((.(((((((.(((.(......))))...((.((...(((((....)))))...))))...))))))).))
.))))......)))...(((((((.((.....)).)))))))......((((...((((((...(((((..((((((
..((((....))))...))).......)))..))))).....((((.....)))).(((((((((((.......(((
(.(.(((((((.....((.((((((.((((((((...((((.((((.(((..(....(((((.(((...)))
.)))))......)..))).)))).)))).((((((.....(....)...))))))........))))))))
.))))))..)).(((..((........))..)))....))))))).).))))..)))))))))))))))))..
.))))..))))))))).)))))).))))..((((((.(....).))))))....))).....))).......(((((
((.....)))))))......)))))))))))))))))))))))...)))))..(((((.(..((((((.(.((((..
(((((....)))))..)))).).))))))..).)))))..........)).)))).))..)))....))
.))))))))))))..."
==
"........(((((((((.(((.((...(((.((((((((((((((((.....(((((((.((((((..(..((((.
...((((((((.((((((....)))..))).)))))))).....((.((.((.((((((....)))))).)).))
.))..))))..))))))).)))))))..(((((..((..((.((...((((((((.......))))))))...))
.))..)).)))))........))))))))))))))))((.((((((...(((((.(((((((((((.(.(..((.((
(.(((((..((((((((..(((....))))))).........))))..))))).)))..(..((((((.((((((..
.(((((..(((((..(..(.(((.((((.((((.(((((((...........)))).))).)))).))))))).).
.)..))))).)))))...)))).)).))))))..)............))..).).)))))))))))..(((((((.(
(((((((.((((((((.(((...((.(.(....).).))..(((....((((.((.((.((.(((((((((..(((.
.((((((.(((((((.(((.(......))))...((.((...(((((....)))))...))))...))))))).))
.))))......)))...(((((((.((.....)).)))))))......((((...((((((...(((((..((((((
..((((....))))...))).......)))..))))).....((((.....)))).(((((((((((.......(((
(.(.(((((((.....((.((((((.((((((((...((((.((((.(((..(....(((((.(((...)))
.)))))......)..))).)))).)))).((((((.....(....)...))))))........))))))))
.))))))..)).(((..((........))..)))....))))))).).))))..)))))))))))))))))..
.))))..))))))))).)))))).))))..((((((.(....).))))))....))).....))).......(((((
((.....)))))))......)))))))))))))))))))))))...)))))..(((((.(..((((((.(.((((..
(((((....)))))..)))).).))))))..).)))))..........)).)))).))..)))....))
.))))))))))))..."
-------------------------------------------------------------------------------
E. hexamita 16S MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:364
...............................................................................
src/test-pmfe.cc:370:
PASSED:
REQUIRE( seq.len() == 1550 )
with expansion:
1550 == 1550
-------------------------------------------------------------------------------
E. hexamita 16S MFE
Turner99 published parameters
-------------------------------------------------------------------------------
src/test-pmfe.cc:364
...............................................................................
src/test-pmfe.cc:380:
PASSED:
REQUIRE( energy == pmfe::Rational(-2824, 5) )
with expansion:
-2824/5 == -2824/5
src/test-pmfe.cc:384:
PASSED:
REQUIRE( scored_structure.old_string() == "...(((((.......)))))...(((..(((((((((........((((.((((((((..((((.((((..(((....)))..(((((((((((..((((...((....))))))..)))).......))))))).)))).))))(((((((((.((.....((((((......))).(((((((...((((((...(((((.(.....(((.(((.(((.(((.....(((((((((((...((((.(((((((.((....(((((((((.....(((((((....(((((..(((...((..((((((.(((......))).....((((((.((.....))))))))))))))..))..(((.((.(((((.(..((((((...(((((....))))).))))))..)............((((((....)))))).....(((..((((((.(......)))))))...(((.....)))....)))...))))).)).))))))..))))).......))))))))))))))))..)).))).))))..)))))))).)))...(((((((((((((..((((((((.....)))))))).(((((...((....))((((.......))))....)))))...(((((((((....))))))))).((.......((((((((...((((((.((.(((((((((...................))))))))).))........((....)).))))))..))))))))..(((((((((((((....((((((((..(((((............)))))..))))))))......(((((((.....(((.(((((((....))))))).)))...((....)).((((((((((.(..((.((.........)).))..)))))))))))..)))))))......((((.((((.....)))).))))...))))...))))).))))............)).(.((((((((.((((.((.((((((((((....(((....((((((.((((((.((((..(((((.((.((.....))..)).))))).)))).)))))).))))))..)))..((.((((((((((((((.....)))))...(((((((.....))))).))....)))))).))).)).)))))))..))))).)))))).)))))).)..((((...((((.((((((((..((((.((..(((.(((....)))..)))....))))))....)))))))).)))).((((.......(((...(((((((....)))))))..)))....)))).)))).....)))))))))))))..))))...))).))).))))))).))))))))))))))))))....))).....)).)))))))))..............)))))))).((..((((.(...(((((.....))).))..).)))).)).......))))((((((((....))))))))..)))).))))))))" )
with expansion:
"...(((((.......)))))...(((..(((((((((........((((.((((((((..((((.((((..(((..
..)))..(((((((((((..((((...((....))))))..)))).......))))))).)))).))))((((((((
(.((.....((((((......))).(((((((...((((((...(((((.(.....(((.(((.(((.(((.....(
((((((((((...((((.(((((((.((....(((((((((.....(((((((....(((((..(((...((..(((
(((.(((......))).....((((((.((.....))))))))))))))..))..(((.((.(((((.(..((((((
...(((((....))))).))))))..)............((((((....)))))).....(((..((((((.(....
..)))))))...(((.....)))....)))...))))).)).))))))..)))))......
.))))))))))))))))..)).))).))))..)))))))).)))...(((((((((((((..((((((((....
.)))))))).(((((...((....))((((.......))))....)))))...(((((((((....))))))))).(
(.......((((((((...((((((.((.(((((((((...................))))))))).))........
((....)).))))))..))))))))..(((((((((((((....((((((((..(((((............))))).
.))))))))......(((((((.....(((.(((((((....))))))).)))...((....)).((((((((((.(
..((.((.........)).))..)))))))))))..)))))))......((((.((((.....)))).))))..
.))))...))))).))))............)).(.((((((((.((((.((.((((((((((....(((....((((
((.((((((.((((..(((((.((.((.....))..)).))))).)))).)))))).))))))..)))..((.((((
((((((((((.....)))))...(((((((.....))))).))....)))))).))).)).)))))))..)))))
.)))))).)))))).)..((((...((((.((((((((..((((.((..(((.(((....)))..)))...
.))))))....)))))))).)))).((((.......(((...(((((((....)))))))..)))....))))
.)))).....)))))))))))))..))))...))).))).))))))).))))))))))))))))))....)))....
.)).)))))))))..............)))))))).((..((((.(...(((((.....))).))..).)))).)).
......))))((((((((....))))))))..)))).))))))))"
==
"...(((((.......)))))...(((..(((((((((........((((.((((((((..((((.((((..(((..
..)))..(((((((((((..((((...((....))))))..)))).......))))))).)))).))))((((((((
(.((.....((((((......))).(((((((...((((((...(((((.(.....(((.(((.(((.(((.....(
((((((((((...((((.(((((((.((....(((((((((.....(((((((....(((((..(((...((..(((
(((.(((......))).....((((((.((.....))))))))))))))..))..(((.((.(((((.(..((((((
...(((((....))))).))))))..)............((((((....)))))).....(((..((((((.(....
..)))))))...(((.....)))....)))...))))).)).))))))..)))))......
.))))))))))))))))..)).))).))))..)))))))).)))...(((((((((((((..((((((((....
.)))))))).(((((...((....))((((.......))))....)))))...(((((((((....))))))))).(
(.......((((((((...((((((.((.(((((((((...................))))))))).))........
((....)).))))))..))))))))..(((((((((((((....((((((((..(((((............))))).
.))))))))......(((((((.....(((.(((((((....))))))).)))...((....)).((((((((((.(
..((.((.........)).))..)))))))))))..)))))))......((((.((((.....)))).))))..
.))))...))))).))))............)).(.((((((((.((((.((.((((((((((....(((....((((
((.((((((.((((..(((((.((.((.....))..)).))))).)))).)))))).))))))..)))..((.((((
((((((((((.....)))))...(((((((.....))))).))....)))))).))).)).)))))))..)))))
.)))))).)))))).)..((((...((((.((((((((..((((.((..(((.(((....)))..)))...
.))))))....)))))))).)))).((((.......(((...(((((((....)))))))..)))....))))
.)))).....)))))))))))))..))))...))).))).))))))).))))))))))))))))))....)))....
.)).)))))))))..............)))))))).((..((((.(...(((((.....))).))..).)))).)).
......))))((((((((....))))))))..)))).))))))))"
-------------------------------------------------------------------------------
G. ardaea 16S MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:389
...............................................................................
src/test-pmfe.cc:395:
PASSED:
REQUIRE( seq.len() == 1435 )
with expansion:
1435 == 1435
-------------------------------------------------------------------------------
G. ardaea 16S MFE
Turner99 published parameters
-------------------------------------------------------------------------------
src/test-pmfe.cc:389
...............................................................................
src/test-pmfe.cc:405:
PASSED:
REQUIRE( energy == pmfe::Rational(-7619, 10) )
with expansion:
-7619/10 == -7619/10
src/test-pmfe.cc:409:
PASSED:
REQUIRE( scored_structure.old_string() == "..(((..(.((.((((((.((((((..((..((((((..(....)..(((.(((.(((....)))))).)))...))))))..))..........((..((.(.(((.(((.(((((((..(((..(((((((..((((((....))))))....(((..((((....)))).((.(.((.((((.((((((((........((((.((((..(((((((((.....(((.((((((((.......)))))))))))......((.(((((..(((((....((((((((((((..(((((((........)))))))...)))......((..(((((.......))))))).(((((.(((((.....((.((.(((...((((((((...))))))))..))).))))...))))).)))))))))))))).....)))))..))))))).))))))).))..))))..))))..)))))))))))).)).).)).))).....)))))))))).))))))).))).))).).))..))..))))))..)))))).)))..)))..(((.((.((((.(((.(.(..(((.((((((((((..((((((((...(((((((((.................))))....)))))(((((.((((((((((..(((((..((((((((..(((.(((((..((((((((..(.((((((.((..(.((((((((....((((.(((....(((((((.((((((.(((((.((((..(((..((....))...)))..).))).))))).)))))).((((.(((((....)))))..))))...)))))))(((((((.(((((..(((((.....)))))(((((....(((((((..((((..(.(((....)))...)..))))..)))..)))).)))))))))).)))))))...))).))))))))))))))).))).))).).((.((((((....)))(((.((......))))).))).))....))))))))...((((....))))..)))).).)))..))))))))...(((((.(.......).)))))...))))))))))).)))).))))).)).))))))(((.(((((((...(((.((((.(((((....))))).))).).)))....)))))))))).(((((.(((((((..((....))))))))).)))))..(((((....(((((((((.....)))))))))))))).)))))))))))))...).).)))))))...(((((.((..(..(((((((.(((..(((.(((...((.....))...))).)))..))).)))))))..).)).)))))..)).)))...(((((((((((((....))))))))))....))).." )
with expansion:
"..(((..(.((.((((((.((((((..((..((((((..(....)..(((.(((.(((....)))))).)))..
.))))))..))..........((..((.(.(((.(((.(((((((..(((..(((((((..((((((....))))))
....(((..((((....)))).((.(.((.((((.((((((((........((((.((((..(((((((((.....(
((.((((((((.......)))))))))))......((.(((((..(((((....((((((((((((..(((((((..
......)))))))...)))......((..(((((.......))))))).(((((.(((((.....((.((.(((...
((((((((...))))))))..))).))))...))))).)))))))))))))).....)))))..)))))))
.))))))).))..))))..))))..)))))))))))).)).).)).))).....)))))))))).))))))).)))
.))).).))..))..))))))..)))))).)))..)))..(((.((.((((.(((.(.(..(((.((((((((((..
((((((((...(((((((((.................))))....)))))(((((.((((((((((..(((((..((
((((((..(((.(((((..((((((((..(.((((((.((..(.((((((((....((((.(((....(((((((.(
(((((.(((((.((((..(((..((....))...)))..).))).))))).)))))).((((.(((((....)))))
..))))...)))))))(((((((.(((((..(((((.....)))))(((((....(((((((..((((..(.(((..
..)))...)..))))..)))..)))).)))))))))).)))))))...))).))))))))))))))).))).))).)
.((.((((((....)))(((.((......))))).))).))....))))))))...((((....))))..)))).)
.)))..))))))))...(((((.(.......).)))))...))))))))))).)))).))))).)).))))))(((.
(((((((...(((.((((.(((((....))))).))).).)))....)))))))))).(((((.(((((((..((..
..))))))))).)))))..(((((....(((((((((.....)))))))))))))).)))))))))))))...).)
.)))))))...(((((.((..(..(((((((.(((..(((.(((...((.....))...))).)))..)))
.)))))))..).)).)))))..)).)))...(((((((((((((....))))))))))....))).."
==
"..(((..(.((.((((((.((((((..((..((((((..(....)..(((.(((.(((....)))))).)))..
.))))))..))..........((..((.(.(((.(((.(((((((..(((..(((((((..((((((....))))))
....(((..((((....)))).((.(.((.((((.((((((((........((((.((((..(((((((((.....(
((.((((((((.......)))))))))))......((.(((((..(((((....((((((((((((..(((((((..
......)))))))...)))......((..(((((.......))))))).(((((.(((((.....((.((.(((...
((((((((...))))))))..))).))))...))))).)))))))))))))).....)))))..)))))))
.))))))).))..))))..))))..)))))))))))).)).).)).))).....)))))))))).))))))).)))
.))).).))..))..))))))..)))))).)))..)))..(((.((.((((.(((.(.(..(((.((((((((((..
((((((((...(((((((((.................))))....)))))(((((.((((((((((..(((((..((
((((((..(((.(((((..((((((((..(.((((((.((..(.((((((((....((((.(((....(((((((.(
(((((.(((((.((((..(((..((....))...)))..).))).))))).)))))).((((.(((((....)))))
..))))...)))))))(((((((.(((((..(((((.....)))))(((((....(((((((..((((..(.(((..
..)))...)..))))..)))..)))).)))))))))).)))))))...))).))))))))))))))).))).))).)
.((.((((((....)))(((.((......))))).))).))....))))))))...((((....))))..)))).)
.)))..))))))))...(((((.(.......).)))))...))))))))))).)))).))))).)).))))))(((.
(((((((...(((.((((.(((((....))))).))).).)))....)))))))))).(((((.(((((((..((..
..))))))))).)))))..(((((....(((((((((.....)))))))))))))).)))))))))))))...).)
.)))))))...(((((.((..(..(((((((.(((..(((.(((...((.....))...))).)))..)))
.)))))))..).)).)))))..)).)))...(((((((((((((....))))))))))....))).."
-------------------------------------------------------------------------------
G. intestinalis 16S MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:414
...............................................................................
src/test-pmfe.cc:420:
PASSED:
REQUIRE( seq.len() == 1452 )
with expansion:
1452 == 1452
-------------------------------------------------------------------------------
G. intestinalis 16S MFE
Turner99 published parameters
-------------------------------------------------------------------------------
src/test-pmfe.cc:414
...............................................................................
src/test-pmfe.cc:430:
PASSED:
REQUIRE( energy == pmfe::Rational(-8027, 10) )
with expansion:
-8027/10 == -8027/10
src/test-pmfe.cc:434:
PASSED:
REQUIRE( scored_structure.old_string() == ".....((..(((((.(((...((((.(..(((((((((..(.((.((((......((((((((...((((..(((((((.(((((((((...((.(((((.......))))).)).))))..)))))....))))).))..))))((((((.....)).))))..)))))))).(((..(((((.((.(((.(((((.(((.(((((.(((((..((((((((((.....((....))....(((((((((((((..(((((....((((((.(..((((....))))..(((((((..(((((((........)))))))...)))..((.((((....((((((((.(((((((..(((((...))))).(((..((.(((....(((....))).((.((((.....)))))).)))))..)))..))))))).))).)))))..((((..(((......(((((((((.((((((....)))))))))).)))))......)))..)))).......))))))....(....).))))..).)))))).)))))...((.(((((.(((((....))))).)))))))))))))))))))).)))))).))))..)))))((((((((((....((((((((((..((((.....(..(((((((....((.((.((((((..((((....))))......((((..((.....))..))))..)))))).))))....)).)))))..)..))))...))))))))))....))))))).)))...))))).)))..))))).)))..))))))).((....))))).)))).))..)..)))))))))..).).)))..))).....((((..(((...((((((((((((....((((....((((.....))))..)))).......(((((..(((....))).((((.(((((((.((.......((((((..((((((((((((.(.(((((((((.((((((((..((.....)))))).))))..))))))))).).)))))))....)))))....)))))).(((((((((((((((((.(((((....)))))...(((((((((........(.((((((.((.((((....(((...)))....((((((((...(((((...)))))..)))))))).)))).)))))))).))))))))))..((.((..((((((..((....))))))))..)).))..)))))))).)))))))))..)).))))))))))).)))))...)))))))............))))).(((((.((..(..(((((((.(((..((((((((......))..))).)))..))).)))))))..).)).)))))..)))....))))....((((((((....)))))))).))))))).." )
with expansion:
".....((..(((((.(((...((((.(..(((((((((..(.((.((((......((((((((...((((..((((
(((.(((((((((...((.(((((.......))))).)).))))..)))))....))))).))..))))((((((..
...)).))))..)))))))).(((..(((((.((.(((.(((((.(((.(((((.(((((..((((((((((.....
((....))....(((((((((((((..(((((....((((((.(..((((....))))..(((((((..(((((((.
.......)))))))...)))..((.((((....((((((((.(((((((..(((((...))))).(((..((.(((.
...(((....))).((.((((.....)))))).)))))..)))..))))))).))).)))))..((((..(((....
..(((((((((.((((((....)))))))))).)))))......)))..)))).......))))))....(....)
.))))..).)))))).)))))...((.(((((.(((((....))))).)))))))))))))))))))).))))))
.))))..)))))((((((((((....((((((((((..((((.....(..(((((((....((.((.((((((..((
((....))))......((((..((.....))..))))..)))))).))))....)).)))))..)..))))..
.))))))))))....))))))).)))...))))).)))..))))).)))..))))))).((....))))).))))
.))..)..)))))))))..).).)))..))).....((((..(((...((((((((((((....((((....((((.
....))))..)))).......(((((..(((....))).((((.(((((((.((.......((((((..((((((((
((((.(.(((((((((.((((((((..((.....)))))).))))..))))))))).).)))))))....)))))..
..)))))).(((((((((((((((((.(((((....)))))...(((((((((........(.((((((.((.((((
....(((...)))....((((((((...(((((...)))))..)))))))).)))).)))))))).)))))))))).
.((.((..((((((..((....))))))))..)).))..)))))))).)))))))))..)).)))))))))))
.)))))...)))))))............))))).(((((.((..(..(((((((.(((..((((((((......)).
.))).)))..))).)))))))..).)).)))))..)))....))))....((((((((....))))))))
.))))))).."
==
".....((..(((((.(((...((((.(..(((((((((..(.((.((((......((((((((...((((..((((
(((.(((((((((...((.(((((.......))))).)).))))..)))))....))))).))..))))((((((..
...)).))))..)))))))).(((..(((((.((.(((.(((((.(((.(((((.(((((..((((((((((.....
((....))....(((((((((((((..(((((....((((((.(..((((....))))..(((((((..(((((((.
.......)))))))...)))..((.((((....((((((((.(((((((..(((((...))))).(((..((.(((.
...(((....))).((.((((.....)))))).)))))..)))..))))))).))).)))))..((((..(((....
..(((((((((.((((((....)))))))))).)))))......)))..)))).......))))))....(....)
.))))..).)))))).)))))...((.(((((.(((((....))))).)))))))))))))))))))).))))))
.))))..)))))((((((((((....((((((((((..((((.....(..(((((((....((.((.((((((..((
((....))))......((((..((.....))..))))..)))))).))))....)).)))))..)..))))..
.))))))))))....))))))).)))...))))).)))..))))).)))..))))))).((....))))).))))
.))..)..)))))))))..).).)))..))).....((((..(((...((((((((((((....((((....((((.
....))))..)))).......(((((..(((....))).((((.(((((((.((.......((((((..((((((((
((((.(.(((((((((.((((((((..((.....)))))).))))..))))))))).).)))))))....)))))..
..)))))).(((((((((((((((((.(((((....)))))...(((((((((........(.((((((.((.((((
....(((...)))....((((((((...(((((...)))))..)))))))).)))).)))))))).)))))))))).
.((.((..((((((..((....))))))))..)).))..)))))))).)))))))))..)).)))))))))))
.)))))...)))))))............))))).(((((.((..(..(((((((.(((..((((((((......)).
.))).)))..))).)))))))..).)).)))))..)))....))))....((((((((....))))))))
.))))))).."
-------------------------------------------------------------------------------
G. muris 16S MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:439
...............................................................................
src/test-pmfe.cc:445:
PASSED:
REQUIRE( seq.len() == 1432 )
with expansion:
1432 == 1432
-------------------------------------------------------------------------------
G. muris 16S MFE
Turner99 published parameters
-------------------------------------------------------------------------------
src/test-pmfe.cc:439
...............................................................................
src/test-pmfe.cc:455:
PASSED:
REQUIRE( energy == pmfe::Rational(-582) )
with expansion:
-582 == -582
src/test-pmfe.cc:459:
PASSED:
REQUIRE( scored_structure.old_string() == "(((((((....((((((..(((((((..((((((((..((......(((((((...((....))..)).....)))))....((((((.(((....)))))))))...)).)))))...))).....((....((((((....))))))))......)))))))....)))))).......((((((......)))..))))))))))....(((((((((((((((..((.(((((.......))))).)).))).))))))))..))))(((((...((((((((((.....(((((((........)))))))...((((((...((((.(((((.((....(((((..((((......))))..)))))...)).....((((.(((..((......((((((.........))))))..))..))).))))...))))).))))......((((((......((((((((((.((((....)))))))))).))))....(((((....(((...(((((..(((((((.....(((((((.....(((((.((((((((((....((((((((.((..(((........)))..(((((((((.....(((((.(((...................))).))))).((((((...(..((..((.((..((....((((..........(((((...(((((.(.((((..((((((.((..(.((((((((.......((((.....(((((((.((.((((.((((((.((((.....))))...((....))......))).))).)))).))..((((.(((((....)))))..))))...)))))))..((..((((.......(.(((.(((((.............))))).))))....))))..))..))))...(((((((.....(((.((((.....)))).)))...)))))))..))))))))))).))).)))...)))).)))))).....(((((((((..........))))).)))).....)))))))))..((.(((((.....))))).))..))..)))).))..)..)))))).)))))))))..)).)))))))).....)))))).))))((((((.(((...(.(((((((((....))))))))).).)))..))))))..(((.((((.((((.((((((...(((..(....)..)))...)))))).(((((((((.....)))))))))...)))))))).)))...........)))))...)))))))..((.(..((...))..)))..)))))))...)))))...)))....))))).))))))...))))))....)))...)))).)))....((((((((((....)))))))))))))))...." )
with expansion:
"(((((((....((((((..(((((((..((((((((..((......(((((((...((....))..))....
.)))))....((((((.(((....)))))))))...)).)))))...))).....((....((((((...
.))))))))......)))))))....)))))).......((((((......)))..))))))))))....(((((((
((((((((..((.(((((.......))))).)).))).))))))))..))))(((((...((((((((((.....((
(((((........)))))))...((((((...((((.(((((.((....(((((..((((......))))..)))))
...)).....((((.(((..((......((((((.........))))))..))..))).))))...))))).)))).
.....((((((......((((((((((.((((....)))))))))).))))....(((((....(((...(((((..
(((((((.....(((((((.....(((((.((((((((((....((((((((.((..(((........)))..((((
(((((.....(((((.(((...................))).))))).((((((...(..((..((.((..((....
((((..........(((((...(((((.(.((((..((((((.((..(.((((((((.......((((.....((((
(((.((.((((.((((((.((((.....))))...((....))......))).))).)))).))..((((.(((((.
...)))))..))))...)))))))..((..((((.......(.(((.(((((.............))))).))))..
..))))..))..))))...(((((((.....(((.((((.....)))).)))...)))))))..)))))))))))
.))).)))...)))).)))))).....(((((((((..........))))).)))).....)))))))))..((.((
(((.....))))).))..))..)))).))..)..)))))).)))))))))..)).)))))))).....))))))
.))))((((((.(((...(.(((((((((....))))))))).).)))..))))))..(((.((((.((((.(((((
(...(((..(....)..)))...)))))).(((((((((.....)))))))))...)))))))).))).........
..)))))...)))))))..((.(..((...))..)))..)))))))...)))))...)))....))))).)))))).
..))))))....)))...)))).)))....((((((((((....)))))))))))))))...."
==
"(((((((....((((((..(((((((..((((((((..((......(((((((...((....))..))....
.)))))....((((((.(((....)))))))))...)).)))))...))).....((....((((((...
.))))))))......)))))))....)))))).......((((((......)))..))))))))))....(((((((
((((((((..((.(((((.......))))).)).))).))))))))..))))(((((...((((((((((.....((
(((((........)))))))...((((((...((((.(((((.((....(((((..((((......))))..)))))
...)).....((((.(((..((......((((((.........))))))..))..))).))))...))))).)))).
.....((((((......((((((((((.((((....)))))))))).))))....(((((....(((...(((((..
(((((((.....(((((((.....(((((.((((((((((....((((((((.((..(((........)))..((((
(((((.....(((((.(((...................))).))))).((((((...(..((..((.((..((....
((((..........(((((...(((((.(.((((..((((((.((..(.((((((((.......((((.....((((
(((.((.((((.((((((.((((.....))))...((....))......))).))).)))).))..((((.(((((.
...)))))..))))...)))))))..((..((((.......(.(((.(((((.............))))).))))..
..))))..))..))))...(((((((.....(((.((((.....)))).)))...)))))))..)))))))))))
.))).)))...)))).)))))).....(((((((((..........))))).)))).....)))))))))..((.((
(((.....))))).))..))..)))).))..)..)))))).)))))))))..)).)))))))).....))))))
.))))((((((.(((...(.(((((((((....))))))))).).)))..))))))..(((.((((.((((.(((((
(...(((..(....)..)))...)))))).(((((((((.....)))))))))...)))))))).))).........
..)))))...)))))))..((.(..((...))..)))..)))))))...)))))...)))....))))).)))))).
..))))))....)))...)))).)))....((((((((((....)))))))))))))))...."
-------------------------------------------------------------------------------
H. volcanii 16S MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:464
...............................................................................
src/test-pmfe.cc:470:
PASSED:
REQUIRE( seq.len() == 1474 )
with expansion:
1474 == 1474
-------------------------------------------------------------------------------
H. volcanii 16S MFE
Turner99 published parameters
-------------------------------------------------------------------------------
src/test-pmfe.cc:464
...............................................................................
src/test-pmfe.cc:480:
PASSED:
REQUIRE( energy == pmfe::Rational(-687) )
with expansion:
-687 == -687
src/test-pmfe.cc:484:
PASSED:
REQUIRE( scored_structure.old_string() == ".....(((.(((((.......((((((..((.(((((((((......(((.((((..((((((((((....)))))).))))....(((.......((..((((......(((((((.((((..((.((((((....)))))).))...))))....(((((((..((......)).))))))).....(((....))))))))))...))))..))(((((((((((..((((((((.......)))))))))))..)))))))).((((((((....)))...)))))))).((((((((......)))))))).((((....))))..)))))))......((((.....(((((....)))))..)))))))))))))..((((((((.....)))))))).(((((((((((.....)))))))))))...((((((.......((((((...((((...))))..)))))))))))).))..))))))...........((((....(((((.(.((((((((((..(((((((((((...((((((((.....))))))))..))))))))..))).))))))...((((((.....((((((((((.((((((((((.(((......)))....)))))))))).))).......((....)).)))))))....))).)))..)))).).)))))..((((((((.((....((((.........))))..))))))))))....((((((((((((.((((..((((((((.....))))))))..))))...((....))....)))))))..(((...((((.(((((....)))))..))))..)))....((((((((((((....(((((.((....)).))))).....((((....(((((.((.(((..(((((((...((((((((.((..(((.(((((...))))).))).)).))))))))...((.((((..((((((((((..((((((.((....)).(.((((......))))).))))))..(.((((..(((((((((((((((..((((....))))))).)))).))))))))..((.(((((.....))))).))......))))).))))).)))))...))))))....))))))).......(((((((((.(((((((((.....(((((((..((((....))))..)).)))))......))))))))).((((((..(((((((........))))))).....))))))...)))))..))))........))))).))))).....)))).)))))))........))))).....((((.(((..(((((((((((((..(((((((....)))))))..)))))))))))))..))).))))..)))))....)))).((((((((....)))))))).))))))))....." )
with expansion:
".....(((.(((((.......((((((..((.(((((((((......(((.((((..((((((((((...
.)))))).))))....(((.......((..((((......(((((((.((((..((.((((((....)))))).)).
..))))....(((((((..((......)).))))))).....(((....))))))))))...))))..))(((((((
((((..((((((((.......)))))))))))..)))))))).((((((((....)))...)))))))).(((((((
(......)))))))).((((....))))..)))))))......((((.....(((((....))))).
.)))))))))))))..((((((((.....)))))))).(((((((((((.....)))))))))))...((((((...
....((((((...((((...))))..)))))))))))).))..))))))...........((((....(((((.(.(
(((((((((..(((((((((((...((((((((.....))))))))..))))))))..))).))))))...((((((
.....((((((((((.((((((((((.(((......)))....)))))))))).))).......((....))
.)))))))....))).)))..)))).).)))))..((((((((.((....((((.........)))).
.))))))))))....((((((((((((.((((..((((((((.....))))))))..))))...((....))...
.)))))))..(((...((((.(((((....)))))..))))..)))....((((((((((((....(((((.((...
.)).))))).....((((....(((((.((.(((..(((((((...((((((((.((..(((.(((((...)))))
.))).)).))))))))...((.((((..((((((((((..((((((.((....)).(.((((......)))))
.))))))..(.((((..(((((((((((((((..((((....))))))).)))).))))))))..((.(((((....
.))))).))......))))).))))).)))))...))))))....))))))).......(((((((((.((((((((
(.....(((((((..((((....))))..)).)))))......))))))))).((((((..(((((((.......
.))))))).....))))))...)))))..))))........))))).))))).....)))).))))))).......
.))))).....((((.(((..(((((((((((((..(((((((....)))))))..)))))))))))))..)))
.))))..)))))....)))).((((((((....)))))))).))))))))....."
==
".....(((.(((((.......((((((..((.(((((((((......(((.((((..((((((((((...
.)))))).))))....(((.......((..((((......(((((((.((((..((.((((((....)))))).)).
..))))....(((((((..((......)).))))))).....(((....))))))))))...))))..))(((((((
((((..((((((((.......)))))))))))..)))))))).((((((((....)))...)))))))).(((((((
(......)))))))).((((....))))..)))))))......((((.....(((((....))))).
.)))))))))))))..((((((((.....)))))))).(((((((((((.....)))))))))))...((((((...
....((((((...((((...))))..)))))))))))).))..))))))...........((((....(((((.(.(
(((((((((..(((((((((((...((((((((.....))))))))..))))))))..))).))))))...((((((
.....((((((((((.((((((((((.(((......)))....)))))))))).))).......((....))
.)))))))....))).)))..)))).).)))))..((((((((.((....((((.........)))).
.))))))))))....((((((((((((.((((..((((((((.....))))))))..))))...((....))...
.)))))))..(((...((((.(((((....)))))..))))..)))....((((((((((((....(((((.((...
.)).))))).....((((....(((((.((.(((..(((((((...((((((((.((..(((.(((((...)))))
.))).)).))))))))...((.((((..((((((((((..((((((.((....)).(.((((......)))))
.))))))..(.((((..(((((((((((((((..((((....))))))).)))).))))))))..((.(((((....
.))))).))......))))).))))).)))))...))))))....))))))).......(((((((((.((((((((
(.....(((((((..((((....))))..)).)))))......))))))))).((((((..(((((((.......
.))))))).....))))))...)))))..))))........))))).))))).....)))).))))))).......
.))))).....((((.(((..(((((((((((((..(((((((....)))))))..)))))))))))))..)))
.))))..)))))....)))).((((((((....)))))))).))))))))....."
-------------------------------------------------------------------------------
V. necatrix 16S MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:489
...............................................................................
src/test-pmfe.cc:495:
PASSED:
REQUIRE( seq.len() == 1244 )
with expansion:
1244 == 1244
-------------------------------------------------------------------------------
V. necatrix 16S MFE
Turner99 published parameters
-------------------------------------------------------------------------------
src/test-pmfe.cc:489
...............................................................................
src/test-pmfe.cc:505:
PASSED:
REQUIRE( energy == pmfe::Rational(-1628, 5) )
with expansion:
-1628/5 == -1628/5
src/test-pmfe.cc:509:
PASSED:
REQUIRE( scored_structure.old_string() == "........((((((((((((((((...((((....(((.........(((.(((((((((((.((((((......(((((((((((.((((.((((((.(((((....)))))..(((((.((((((....(((....(((....(((((((..((...((((.(((..((((((..((((((((.......)))))))))))..)))..)))...(((((((((((.((....(((......)))((((.(((.....(((.((.(((.(((..((((.......))))..)))))).)))))......))).)))).....)).)))))))))))........))))....))...)))))))..)))....))).(..((((.......))))..)...)))))).))))).......)))))).))))....))))).))))))......)))))).......(((((((((..((((.((((((((.((.((((..((.....................))..)))).)).......(((....)))))))))))))))...))))))))))))))))))..))))))))))))...))).)))).......((...((((((((((((.(((((...(((((.(((((...)))))..((((((((((...........(((((....)))))...(((((((..((((....))))................(((((.......((....)).((((...(((((((((((..((.((....((..(((....(((((.((((((((((..(((.(.....)..)))..)))))).)))).)))))....)))......(((((((.((((..............((((((......)))))).((((((.((..((.((.((.....)).)).))..)).))))))......)))))))))))..))....)).))..)))))))))))......(((((..........((((((((..(.......)..)).))))))....((((..(((..(((.....(((((((((.....)))))))))....))))))..)))).)))))....))))))))))))))))....(((((((((((((..((.((((....)))).))..))))))))))))).)))))))))).)))))..)))))))))))))))))...))...)))))))))..." )
with expansion:
"........((((((((((((((((...((((....(((.........(((.(((((((((((.((((((......(
((((((((((.((((.((((((.(((((....)))))..(((((.((((((....(((....(((....(((((((.
.((...((((.(((..((((((..((((((((.......)))))))))))..)))..)))...(((((((((((.((
....(((......)))((((.(((.....(((.((.(((.(((..((((.......))))..)))))).)))))...
...))).)))).....)).)))))))))))........))))....))...)))))))..)))....))).(..(((
(.......))))..)...)))))).))))).......)))))).))))....))))).))))))......)))))).
......(((((((((..((((.((((((((.((.((((..((.....................))..)))).))...
....(((....)))))))))))))))...))))))))))))))))))..))))))))))))...))).)))).....
..((...((((((((((((.(((((...(((((.(((((...)))))..((((((((((...........(((((..
..)))))...(((((((..((((....))))................(((((.......((....)).((((...((
(((((((((..((.((....((..(((....(((((.((((((((((..(((.(.....)..)))..))))))
.)))).)))))....)))......(((((((.((((..............((((((......)))))).((((((.(
(..((.((.((.....)).)).))..)).))))))......)))))))))))..))....)).)).
.)))))))))))......(((((..........((((((((..(.......)..)).))))))....((((..(((.
.(((.....(((((((((.....)))))))))....))))))..)))).)))))....))))))))))))))))...
.(((((((((((((..((.((((....)))).))..))))))))))))).)))))))))).))))).
.)))))))))))))))))...))...)))))))))..."
==
"........((((((((((((((((...((((....(((.........(((.(((((((((((.((((((......(
((((((((((.((((.((((((.(((((....)))))..(((((.((((((....(((....(((....(((((((.
.((...((((.(((..((((((..((((((((.......)))))))))))..)))..)))...(((((((((((.((
....(((......)))((((.(((.....(((.((.(((.(((..((((.......))))..)))))).)))))...
...))).)))).....)).)))))))))))........))))....))...)))))))..)))....))).(..(((
(.......))))..)...)))))).))))).......)))))).))))....))))).))))))......)))))).
......(((((((((..((((.((((((((.((.((((..((.....................))..)))).))...
....(((....)))))))))))))))...))))))))))))))))))..))))))))))))...))).)))).....
..((...((((((((((((.(((((...(((((.(((((...)))))..((((((((((...........(((((..
..)))))...(((((((..((((....))))................(((((.......((....)).((((...((
(((((((((..((.((....((..(((....(((((.((((((((((..(((.(.....)..)))..))))))
.)))).)))))....)))......(((((((.((((..............((((((......)))))).((((((.(
(..((.((.((.....)).)).))..)).))))))......)))))))))))..))....)).)).
.)))))))))))......(((((..........((((((((..(.......)..)).))))))....((((..(((.
.(((.....(((((((((.....)))))))))....))))))..)))).)))))....))))))))))))))))...
.(((((((((((((..((.((((....)))).))..))))))))))))).)))))))))).))))).
.)))))))))))))))))...))...)))))))))..."
-------------------------------------------------------------------------------
Z. mays 16S MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:514
...............................................................................
src/test-pmfe.cc:520:
PASSED:
REQUIRE( seq.len() == 1962 )
with expansion:
1962 == 1962
-------------------------------------------------------------------------------
Z. mays 16S MFE
Turner99 published parameters
-------------------------------------------------------------------------------
src/test-pmfe.cc:514
...............................................................................
src/test-pmfe.cc:530:
PASSED:
REQUIRE( energy == pmfe::Rational(-7419, 10) )
with expansion:
-7419/10 == -7419/10
src/test-pmfe.cc:534:
PASSED:
REQUIRE( scored_structure.old_string() == "....((((((((.......)))))))).((((((((.((.....))....(((..(((((.(((..(((((((((((((.(((((....((((.......(((((..(((...((((((.(((((((....))))))).).)))))..............((((((((((((((((...((((.((((((...((((.((((((..(.(.(((((..(.((((((..((....))..((((((((((..((((.(((((.((((.....((((.((((...))))..)))).(((((((((..((((((((.......)))))))))))..))))))..))))..)))))..))))..((((((......)).)))).....)))))))))))))))).)..)).))).).).......((((...(((((....))))).))))((....((((....))))......))..))))))))))...(((..(((.((((((.(............).)))))).)))..)))..))))))..))))..)))))).(((.(((...((((.(.((((...((((((((.......((.(((((..(((.(((......(((((((.((.((((.((((....((((((.....))))))..)))).))))..)).)))))))...))).(((...(((((((((..((((((((.((.(((.....))).)).))..)))))).....))....((....)).)))))))..))))))....))))).)).(((....))).))))))))..((((.........))))...)))).).)))).......(((((((.(((((((((((((.((.((...)))).)))))))))))))...((....))....))))))).)))))).((((.(((((....)))))..)))).........))))))))))......)))...))))).(((((((...........))).))))...)))).))))))))))).....)))))))....(((((.....)))))......(((...((((((((((((((....(((.(((.(((((.((((((....)))....((......))....))).(((((((....)))))))...)))))))).....(((((((.(((((...((..((((..(((.((((((..(((((.(.........))))))..)))))).)))..))))..)).....))))).)).))))).)))....)))))))....)))))))...)))))).)))))...........((((((((((((((((..(((((........(((((((.((((((((.(((((((((..((((.(...((((...))))....((((((.(((.....))).))....(((((((...(((((.((((((..(((..(((((....((((..(((..(((((...............(((.(((((.((((((..((((.((.((((((...)))))).))...(((.((((........)))).)))..))))..)))).)))).))).))).((((.....)))).........)).)))..)))......((((((..((((((((..((.....))..))))))))...))))))..((((((.(((((...(((......)))...(((((((.........)))))))...))))).))))))....))))..))))).))))))))))))))..)))))))))))).))))....)))))..))))..))))).)))))).)))))))))((((((..((((((......))))))..)))))).......))).)))))))))..))))))).)).)))..(((..((((((((((....))))))))))..)))..)))..." )
with expansion:
"....((((((((.......)))))))).((((((((.((.....))....(((..(((((.(((..((((((((((
(((.(((((....((((.......(((((..(((...((((((.(((((((....))))))).).))))).......
.......((((((((((((((((...((((.((((((...((((.((((((..(.(.(((((..(.((((((..((.
...))..((((((((((..((((.(((((.((((.....((((.((((...))))..)))).(((((((((..((((
((((.......)))))))))))..))))))..))))..)))))..))))..((((((......)).))))....
.)))))))))))))))).)..)).))).).).......((((...(((((....))))).))))((....((((...
.))))......))..))))))))))...(((..(((.((((((.(............).)))))).)))..))).
.))))))..))))..)))))).(((.(((...((((.(.((((...((((((((.......((.(((((..(((.((
(......(((((((.((.((((.((((....((((((.....))))))..)))).))))..)).)))))))...)))
.(((...(((((((((..((((((((.((.(((.....))).)).))..)))))).....))....((....))
.)))))))..))))))....))))).)).(((....))).))))))))..((((.........))))...)))).)
.)))).......(((((((.(((((((((((((.((.((...)))).)))))))))))))...((....))...
.))))))).)))))).((((.(((((....)))))..)))).........))))))))))......)))...)))))
.(((((((...........))).))))...)))).))))))))))).....)))))))....(((((.....)))))
......(((...((((((((((((((....(((.(((.(((((.((((((....)))....((......))...
.))).(((((((....)))))))...)))))))).....(((((((.(((((...((..((((..(((.((((((..
(((((.(.........))))))..)))))).)))..))))..)).....))))).)).))))).)))...
.)))))))....)))))))...)))))).)))))...........((((((((((((((((..(((((........(
((((((.((((((((.(((((((((..((((.(...((((...))))....((((((.(((.....))).))....(
((((((...(((((.((((((..(((..(((((....((((..(((..(((((...............(((.(((((
.((((((..((((.((.((((((...)))))).))...(((.((((........)))).)))..))))..))))
.)))).))).))).((((.....)))).........)).)))..)))......((((((..((((((((..((....
.))..))))))))...))))))..((((((.(((((...(((......)))...(((((((.........)))))))
...))))).))))))....))))..))))).))))))))))))))..)))))))))))).))))....))))).
.))))..))))).)))))).)))))))))((((((..((((((......))))))..)))))).......)))
.)))))))))..))))))).)).)))..(((..((((((((((....))))))))))..)))..)))..."
==
"....((((((((.......)))))))).((((((((.((.....))....(((..(((((.(((..((((((((((
(((.(((((....((((.......(((((..(((...((((((.(((((((....))))))).).))))).......
.......((((((((((((((((...((((.((((((...((((.((((((..(.(.(((((..(.((((((..((.
...))..((((((((((..((((.(((((.((((.....((((.((((...))))..)))).(((((((((..((((
((((.......)))))))))))..))))))..))))..)))))..))))..((((((......)).))))....
.)))))))))))))))).)..)).))).).).......((((...(((((....))))).))))((....((((...
.))))......))..))))))))))...(((..(((.((((((.(............).)))))).)))..))).
.))))))..))))..)))))).(((.(((...((((.(.((((...((((((((.......((.(((((..(((.((
(......(((((((.((.((((.((((....((((((.....))))))..)))).))))..)).)))))))...)))
.(((...(((((((((..((((((((.((.(((.....))).)).))..)))))).....))....((....))
.)))))))..))))))....))))).)).(((....))).))))))))..((((.........))))...)))).)
.)))).......(((((((.(((((((((((((.((.((...)))).)))))))))))))...((....))...
.))))))).)))))).((((.(((((....)))))..)))).........))))))))))......)))...)))))
.(((((((...........))).))))...)))).))))))))))).....)))))))....(((((.....)))))
......(((...((((((((((((((....(((.(((.(((((.((((((....)))....((......))...
.))).(((((((....)))))))...)))))))).....(((((((.(((((...((..((((..(((.((((((..
(((((.(.........))))))..)))))).)))..))))..)).....))))).)).))))).)))...
.)))))))....)))))))...)))))).)))))...........((((((((((((((((..(((((........(
((((((.((((((((.(((((((((..((((.(...((((...))))....((((((.(((.....))).))....(
((((((...(((((.((((((..(((..(((((....((((..(((..(((((...............(((.(((((
.((((((..((((.((.((((((...)))))).))...(((.((((........)))).)))..))))..))))
.)))).))).))).((((.....)))).........)).)))..)))......((((((..((((((((..((....
.))..))))))))...))))))..((((((.(((((...(((......)))...(((((((.........)))))))
...))))).))))))....))))..))))).))))))))))))))..)))))))))))).))))....))))).
.))))..))))).)))))).)))))))))((((((..((((((......))))))..)))))).......)))
.)))))))))..))))))).)).)))..(((..((((((((((....))))))))))..)))..)))..."
-------------------------------------------------------------------------------
Combinatorial sequence MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:539
...............................................................................
src/test-pmfe.cc:545:
PASSED:
REQUIRE( seq.len() == 60 )
with expansion:
60 == 60
-------------------------------------------------------------------------------
Combinatorial sequence MFE
Turner99 published parameters
-------------------------------------------------------------------------------
src/test-pmfe.cc:539
...............................................................................
src/test-pmfe.cc:555:
PASSED:
REQUIRE( energy == pmfe::Rational(-149, 5) )
with expansion:
-149/5 == -149/5
src/test-pmfe.cc:559:
PASSED:
REQUIRE( scored_structure.old_string() == "((((....((((....))))....((((....((((....))))....))))....))))" )
with expansion:
"((((....((((....))))....((((....((((....))))....))))....))))"
==
"((((....((((....))))....((((....((((....))))....))))....))))"
-------------------------------------------------------------------------------
Randomly generated sequence MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:564
...............................................................................
src/test-pmfe.cc:570:
PASSED:
REQUIRE( seq.len() == 75 )
with expansion:
75 == 75
-------------------------------------------------------------------------------
Randomly generated sequence MFE
Turner99 published parameters
-------------------------------------------------------------------------------
src/test-pmfe.cc:564
...............................................................................
src/test-pmfe.cc:580:
PASSED:
REQUIRE( energy == pmfe::Rational(-81, 5) )
with expansion:
-81/5 == -81/5
src/test-pmfe.cc:584:
PASSED:
REQUIRE( scored_structure.old_string() == ".(((.(((....(((....((.....))..))).....))))))................((......))....." )
with expansion:
".(((.(((....(((....((.....))..))).....))))))................((......))....."
==
".(((.(((....(((....((.....))..))).....))))))................((......))....."
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:595:
PASSED:
REQUIRE( seq.len() == 72 )
with expansion:
72 == 72
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
onivara_old_classical, d1
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:605:
PASSED:
REQUIRE( energy == pmfe::Rational(-283, 10) )
with expansion:
-283/10 == -283/10
src/test-pmfe.cc:609:
PASSED:
REQUIRE( scored_structure.old_string() == "((((((((..(((.((....)))))(((((.......))))).((((....))))........))))))))." )
with expansion:
"((((((((..(((.((....)))))(((((.......))))).((((....))))........))))))))."
==
"((((((((..(((.((....)))))(((((.......))))).((((....))))........))))))))."
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:595:
PASSED:
REQUIRE( seq.len() == 72 )
with expansion:
72 == 72
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
onivara_old_1, d1
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:622:
PASSED:
REQUIRE( energy == pmfe::Rational(-239, 10) )
with expansion:
-239/10 == -239/10
src/test-pmfe.cc:626:
PASSED:
REQUIRE( scored_structure.old_string() == "(((((((.(((.((((....)).))(((((.......)))))..)))(((((.......))))))))))))." )
with expansion:
"(((((((.(((.((((....)).))(((((.......)))))..)))(((((.......))))))))))))."
==
"(((((((.(((.((((....)).))(((((.......)))))..)))(((((.......))))))))))))."
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:595:
PASSED:
REQUIRE( seq.len() == 72 )
with expansion:
72 == 72
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
onivara_old_2, d1
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:639:
PASSED:
REQUIRE( energy == pmfe::Rational(-279,10) )
with expansion:
-279/10 == -279/10
src/test-pmfe.cc:643:
PASSED:
REQUIRE( scored_structure.old_string() == "(((((((.(((.((((....)).))(((((.......)))))..)))(((((.......))))))))))))." )
with expansion:
"(((((((.(((.((((....)).))(((((.......)))))..)))(((((.......))))))))))))."
==
"(((((((.(((.((((....)).))(((((.......)))))..)))(((((.......))))))))))))."
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:595:
PASSED:
REQUIRE( seq.len() == 72 )
with expansion:
72 == 72
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
onivara_old_3, d1
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:656:
PASSED:
REQUIRE( energy == pmfe::Rational(-167,5) )
with expansion:
-167/5 == -167/5
src/test-pmfe.cc:660:
PASSED:
REQUIRE( scored_structure.old_string() == "(((((((.(((...((....))...(((((.......)))))..)))(((((.......))))))))))))." )
with expansion:
"(((((((.(((...((....))...(((((.......)))))..)))(((((.......))))))))))))."
==
"(((((((.(((...((....))...(((((.......)))))..)))(((((.......))))))))))))."
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:595:
PASSED:
REQUIRE( seq.len() == 72 )
with expansion:
72 == 72
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
onivara_old_4, d1
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:673:
PASSED:
REQUIRE( energy == pmfe::Rational(-207,5) )
with expansion:
-207/5 == -207/5
src/test-pmfe.cc:677:
PASSED:
REQUIRE( scored_structure.old_string() == "(((((((.(((...((....))...(((((.......)))))..)))(((((.......))))))))))))." )
with expansion:
"(((((((.(((...((....))...(((((.......)))))..)))(((((.......))))))))))))."
==
"(((((((.(((...((....))...(((((.......)))))..)))(((((.......))))))))))))."
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:595:
PASSED:
REQUIRE( seq.len() == 72 )
with expansion:
72 == 72
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
onivara_old_5, d1
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:690:
PASSED:
REQUIRE( energy == pmfe::Rational(-323,10) )
with expansion:
-323/10 == -323/10
src/test-pmfe.cc:694:
PASSED:
REQUIRE( scored_structure.old_string() == "(((((((.(((.((((....)).))(((((.......)))))..)))(((((.......))))))))))))." )
with expansion:
"(((((((.(((.((((....)).))(((((.......)))))..)))(((((.......))))))))))))."
==
"(((((((.(((.((((....)).))(((((.......)))))..)))(((((.......))))))))))))."
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:595:
PASSED:
REQUIRE( seq.len() == 72 )
with expansion:
72 == 72
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
onivara_old_6, d1
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:707:
PASSED:
REQUIRE( energy == pmfe::Rational(-137,5) )
with expansion:
-137/5 == -137/5
src/test-pmfe.cc:711:
PASSED:
REQUIRE( scored_structure.old_string() == "((((((((..(((.((....)))))(((((.......))))).((((....))))........))))))))." )
with expansion:
"((((((((..(((.((....)))))(((((.......))))).((((....))))........))))))))."
==
"((((((((..(((.((....)))))(((((.......))))).((((....))))........))))))))."
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:595:
PASSED:
REQUIRE( seq.len() == 72 )
with expansion:
72 == 72
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
onivara_old_7, d1
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:724:
PASSED:
REQUIRE( energy == pmfe::Rational(-108, 5) )
with expansion:
-108/5 == -108/5
src/test-pmfe.cc:728:
PASSED:
REQUIRE( scored_structure.old_string() == "..........(((.((....)))))(((((.......))))).((..(((((.......)))))..))...." )
with expansion:
"..........(((.((....)))))(((((.......))))).((..(((((.......)))))..))...."
==
"..........(((.((....)))))(((((.......))))).((..(((((.......)))))..))...."
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:595:
PASSED:
REQUIRE( seq.len() == 72 )
with expansion:
72 == 72
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
onivara_old_8, d1
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:741:
PASSED:
REQUIRE( energy == pmfe::Rational(-65, 2) )
with expansion:
-65/2 == -65/2
src/test-pmfe.cc:745:
PASSED:
REQUIRE( scored_structure.old_string() == "(((((((.(((...((....))...(((((.......)))))..)))(((((.......))))))))))))." )
with expansion:
"(((((((.(((...((....))...(((((.......)))))..)))(((((.......))))))))))))."
==
"(((((((.(((...((....))...(((((.......)))))..)))(((((.......))))))))))))."
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:595:
PASSED:
REQUIRE( seq.len() == 72 )
with expansion:
72 == 72
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
onivara_old_9, d1
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:758:
PASSED:
REQUIRE( energy == pmfe::Rational(-73, 2) )
with expansion:
-73/2 == -73/2
src/test-pmfe.cc:762:
PASSED:
REQUIRE( scored_structure.old_string() == "(((((((.(((...((....))...(((((.......)))))..)))(((((.......))))))))))))." )
with expansion:
"(((((((.(((...((....))...(((((.......)))))..)))(((((.......))))))))))))."
==
"(((((((.(((...((....))...(((((.......)))))..)))(((((.......))))))))))))."
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:595:
PASSED:
REQUIRE( seq.len() == 72 )
with expansion:
72 == 72
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
onivara_old_10, d1
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:775:
PASSED:
REQUIRE( energy == pmfe::Rational(-247,10) )
with expansion:
-247/10 == -247/10
src/test-pmfe.cc:779:
PASSED:
REQUIRE( scored_structure.old_string() == "(((((((.(((...((....))...(((((.......)))))..)))(((((.......))))))))))))." )
with expansion:
"(((((((.(((...((....))...(((((.......)))))..)))(((((.......))))))))))))."
==
"(((((((.(((...((....))...(((((.......)))))..)))(((((.......))))))))))))."
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:595:
PASSED:
REQUIRE( seq.len() == 72 )
with expansion:
72 == 72
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
onivara_old_11, d1
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:792:
PASSED:
REQUIRE( energy == pmfe::Rational(-55, 2) )
with expansion:
-55/2 == -55/2
src/test-pmfe.cc:796:
PASSED:
REQUIRE( scored_structure.old_string() == "(((((((((((((.((....)))))(((((.......))))).((((....))))....))..))))))))." )
with expansion:
"(((((((((((((.((....)))))(((((.......))))).((((....))))....))..))))))))."
==
"(((((((((((((.((....)))))(((((.......))))).((((....))))....))..))))))))."
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:595:
PASSED:
REQUIRE( seq.len() == 72 )
with expansion:
72 == 72
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
onivara_old_12, d1
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:810:
PASSED:
REQUIRE( energy == pmfe::Rational(-27, 1) )
with expansion:
-27 == -27
src/test-pmfe.cc:814:
PASSED:
REQUIRE( scored_structure.old_string() == "(((((((((((((.((....)))))(((((.......))))).((((....))))....))..))))))))." )
with expansion:
"(((((((((((((.((....)))))(((((.......))))).((((....))))....))..))))))))."
==
"(((((((((((((.((....)))))(((((.......))))).((((....))))....))..))))))))."
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:595:
PASSED:
REQUIRE( seq.len() == 72 )
with expansion:
72 == 72
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
onivara_old_13, d1
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:827:
PASSED:
REQUIRE( energy == pmfe::Rational(-136, 5) )
with expansion:
-136/5 == -136/5
src/test-pmfe.cc:831:
PASSED:
REQUIRE( scored_structure.old_string() == "(((((((((((((.((....)))))(((((.......))))).((((....))))....))..))))))))." )
with expansion:
"(((((((((((((.((....)))))(((((.......))))).((((....))))....))..))))))))."
==
"(((((((((((((.((....)))))(((((.......))))).((((....))))....))..))))))))."
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:595:
PASSED:
REQUIRE( seq.len() == 72 )
with expansion:
72 == 72
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
onivara_old_14, d1
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:844:
PASSED:
REQUIRE( energy == pmfe::Rational(-143, 5) )
with expansion:
-143/5 == -143/5
src/test-pmfe.cc:848:
PASSED:
REQUIRE( scored_structure.old_string() == "(((((((.(((...((....))...(((((.......)))))..)))(((((.......))))))))))))." )
with expansion:
"(((((((.(((...((....))...(((((.......)))))..)))(((((.......))))))))))))."
==
"(((((((.(((...((....))...(((((.......)))))..)))(((((.......))))))))))))."
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:595:
PASSED:
REQUIRE( seq.len() == 72 )
with expansion:
72 == 72
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
onivara_old_15, d1
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:861:
PASSED:
REQUIRE( energy == pmfe::Rational(-2019, 10) )
with expansion:
-2019/10 == -2019/10
src/test-pmfe.cc:865:
PASSED:
REQUIRE( scored_structure.old_string() == "(((...)((...)(((....)(...))(....).)))(((...)(...)((...)(....)))(...)).)." )
with expansion:
"(((...)((...)(((....)(...))(....).)))(((...)(...)((...)(....)))(...)).)."
==
"(((...)((...)(((....)(...))(....).)))(((...)(...)((...)(....)))(...)).)."
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:595:
PASSED:
REQUIRE( seq.len() == 72 )
with expansion:
72 == 72
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
onivara_old_16, d1
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:878:
PASSED:
REQUIRE( energy == pmfe::Rational(-1776,5) )
with expansion:
-1776/5 == -1776/5
src/test-pmfe.cc:882:
PASSED:
REQUIRE( scored_structure.old_string() == "(..........(...)..................................(...)...............)." )
with expansion:
"(..........(...)..................................(...)...............)."
==
"(..........(...)..................................(...)...............)."
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:595:
PASSED:
REQUIRE( seq.len() == 72 )
with expansion:
72 == 72
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
onivara_17, d1
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:895:
PASSED:
REQUIRE( energy == pmfe::Rational(-1036,5) )
with expansion:
-1036/5 == -1036/5
src/test-pmfe.cc:899:
PASSED:
REQUIRE( scored_structure.old_string() == "((....)((((...)(....))((...)((.......)((...)))))(((...)(....))(....))))." )
with expansion:
"((....)((((...)(....))((...)((.......)((...)))))(((...)(....))(....))))."
==
"((....)((((...)(....))((...)((.......)((...)))))(((...)(....))(....))))."
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:595:
PASSED:
REQUIRE( seq.len() == 72 )
with expansion:
72 == 72
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
onivara_old_18, d1
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:912:
PASSED:
REQUIRE( energy == pmfe::Rational(-3729, 10) )
with expansion:
-3729/10 == -3729/10
src/test-pmfe.cc:916:
PASSED:
REQUIRE( scored_structure.old_string() == "(..........(...)..................................(...)...............)." )
with expansion:
"(..........(...)..................................(...)...............)."
==
"(..........(...)..................................(...)...............)."
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:595:
PASSED:
REQUIRE( seq.len() == 72 )
with expansion:
72 == 72
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
onivara_old_19, d1
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:929:
PASSED:
REQUIRE( energy == pmfe::Rational(-194,5) )
with expansion:
-194/5 == -194/5
src/test-pmfe.cc:933:
PASSED:
REQUIRE( scored_structure.old_string() == "(((((((((((((.((....)))))(((....)))(.((....)))))((((.......))))))))))))." )
with expansion:
"(((((((((((((.((....)))))(((....)))(.((....)))))((((.......))))))))))))."
==
"(((((((((((((.((....)))))(((....)))(.((....)))))((((.......))))))))))))."
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:595:
PASSED:
REQUIRE( seq.len() == 72 )
with expansion:
72 == 72
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
onivara_old_20, d1
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:946:
PASSED:
REQUIRE( energy == pmfe::Rational(-108, 5) )
with expansion:
-108/5 == -108/5
src/test-pmfe.cc:950:
PASSED:
REQUIRE( scored_structure.old_string() == "..........(((.((....)))))(((((.......))))).((..(((((.......)))))..))...." )
with expansion:
"..........(((.((....)))))(((((.......))))).((..(((((.......)))))..))...."
==
"..........(((.((....)))))(((((.......))))).((..(((((.......)))))..))...."
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:595:
PASSED:
REQUIRE( seq.len() == 72 )
with expansion:
72 == 72
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
onivara_old_21, d1
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:963:
PASSED:
REQUIRE( energy == pmfe::Rational(-195,2) )
with expansion:
-195/2 == -195/2
src/test-pmfe.cc:967:
PASSED:
REQUIRE( scored_structure.old_string() == "(...(.........((....)).....(....)......)...(....).....................)." )
with expansion:
"(...(.........((....)).....(....)......)...(....).....................)."
==
"(...(.........((....)).....(....)......)...(....).....................)."
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:595:
PASSED:
REQUIRE( seq.len() == 72 )
with expansion:
72 == 72
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
onivara_old_22, d1
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:980:
PASSED:
REQUIRE( energy == pmfe::Rational(-128,5) )
with expansion:
-128/5 == -128/5
src/test-pmfe.cc:984:
PASSED:
REQUIRE( scored_structure.old_string() == "((((((((......((....))...(((((.......))))).((((....))))........))))))))." )
with expansion:
"((((((((......((....))...(((((.......))))).((((....))))........))))))))."
==
"((((((((......((....))...(((((.......))))).((((....))))........))))))))."
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:595:
PASSED:
REQUIRE( seq.len() == 72 )
with expansion:
72 == 72
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
onivara_old_23, d1
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:997:
PASSED:
REQUIRE( energy == pmfe::Rational(-108, 5) )
with expansion:
-108/5 == -108/5
src/test-pmfe.cc:1001:
PASSED:
REQUIRE( scored_structure.old_string() == "..........(((.((....)))))(((((.......))))).((..(((((.......)))))..))...." )
with expansion:
"..........(((.((....)))))(((((.......))))).((..(((((.......)))))..))...."
==
"..........(((.((....)))))(((((.......))))).((..(((((.......)))))..))...."
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:595:
PASSED:
REQUIRE( seq.len() == 72 )
with expansion:
72 == 72
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
onivara_old_24, d1
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:1014:
PASSED:
REQUIRE( energy == pmfe::Rational(-108, 5) )
with expansion:
-108/5 == -108/5
src/test-pmfe.cc:1018:
PASSED:
REQUIRE( scored_structure.old_string() == "..........(((.((....)))))(((((.......))))).((..(((((.......)))))..))...." )
with expansion:
"..........(((.((....)))))(((((.......))))).((..(((((.......)))))..))...."
==
"..........(((.((....)))))(((((.......))))).((..(((((.......)))))..))...."
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:595:
PASSED:
REQUIRE( seq.len() == 72 )
with expansion:
72 == 72
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
onivara_old_25, d1
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:1031:
PASSED:
REQUIRE( energy == pmfe::Rational(-4887,10) )
with expansion:
-4887/10 == -4887/10
src/test-pmfe.cc:1035:
PASSED:
REQUIRE( scored_structure.old_string() == "(..........(...)..................................(...)...............)." )
with expansion:
"(..........(...)..................................(...)...............)."
==
"(..........(...)..................................(...)...............)."
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:595:
PASSED:
REQUIRE( seq.len() == 72 )
with expansion:
72 == 72
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
onivara_old_26, d1
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:1048:
PASSED:
REQUIRE( energy == pmfe::Rational(-108, 5) )
with expansion:
-108/5 == -108/5
src/test-pmfe.cc:1052:
PASSED:
REQUIRE( scored_structure.old_string() == "..........(((.((....)))))(((((.......))))).((..(((((.......)))))..))...." )
with expansion:
"..........(((.((....)))))(((((.......))))).((..(((((.......)))))..))...."
==
"..........(((.((....)))))(((((.......))))).((..(((((.......)))))..))...."
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:595:
PASSED:
REQUIRE( seq.len() == 72 )
with expansion:
72 == 72
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
onivara_old_27, d1
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:1065:
PASSED:
REQUIRE( energy == pmfe::Rational(-108, 5) )
with expansion:
-108/5 == -108/5
src/test-pmfe.cc:1069:
PASSED:
REQUIRE( scored_structure.old_string() == "..........(((.((....)))))(((((.......))))).((..(((((.......)))))..))...." )
with expansion:
"..........(((.((....)))))(((((.......))))).((..(((((.......)))))..))...."
==
"..........(((.((....)))))(((((.......))))).((..(((((.......)))))..))...."
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:595:
PASSED:
REQUIRE( seq.len() == 72 )
with expansion:
72 == 72
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
onivara_old_28, d1
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:1082:
PASSED:
REQUIRE( energy == pmfe::Rational(-108,5) )
with expansion:
-108/5 == -108/5
src/test-pmfe.cc:1086:
PASSED:
REQUIRE( scored_structure.old_string() == "..........(((.((....)))))(((((.......))))).((..(((((.......)))))..))...." )
with expansion:
"..........(((.((....)))))(((((.......))))).((..(((((.......)))))..))...."
==
"..........(((.((....)))))(((((.......))))).((..(((((.......)))))..))...."
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:595:
PASSED:
REQUIRE( seq.len() == 72 )
with expansion:
72 == 72
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
onivara_old_29, d1
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:1099:
PASSED:
REQUIRE( energy == pmfe::Rational(-108, 5) )
with expansion:
-108/5 == -108/5
src/test-pmfe.cc:1103:
PASSED:
REQUIRE( scored_structure.old_string() == "..........(((.((....)))))(((((.......))))).((..(((((.......)))))..))...." )
with expansion:
"..........(((.((....)))))(((((.......))))).((..(((((.......)))))..))...."
==
"..........(((.((....)))))(((((.......))))).((..(((((.......)))))..))...."
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:595:
PASSED:
REQUIRE( seq.len() == 72 )
with expansion:
72 == 72
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
onivara_old_30, d1
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:1116:
PASSED:
REQUIRE( energy == pmfe::Rational(-5341,10) )
with expansion:
-5341/10 == -5341/10
src/test-pmfe.cc:1120:
PASSED:
REQUIRE( scored_structure.old_string() == "(..........(...)..................................(...)...............)." )
with expansion:
"(..........(...)..................................(...)...............)."
==
"(..........(...)..................................(...)...............)."
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:595:
PASSED:
REQUIRE( seq.len() == 72 )
with expansion:
72 == 72
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
onivara_old_31, d1
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:1133:
PASSED:
REQUIRE( energy == pmfe::Rational(-393,5) )
with expansion:
-393/5 == -393/5
src/test-pmfe.cc:1137:
PASSED:
REQUIRE( scored_structure.old_string() == "(.............((....)).....................(....).....................)." )
with expansion:
"(.............((....)).....................(....).....................)."
==
"(.............((....)).....................(....).....................)."
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:595:
PASSED:
REQUIRE( seq.len() == 72 )
with expansion:
72 == 72
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
onivara_old_32, d1
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:1150:
PASSED:
REQUIRE( energy == pmfe::Rational(-231,5) )
with expansion:
-231/5 == -231/5
src/test-pmfe.cc:1154:
PASSED:
REQUIRE( scored_structure.old_string() == "((((((((......((....))..((.(((.......)))...((((....))))....))..))))))))." )
with expansion:
"((((((((......((....))..((.(((.......)))...((((....))))....))..))))))))."
==
"((((((((......((....))..((.(((.......)))...((((....))))....))..))))))))."
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:595:
PASSED:
REQUIRE( seq.len() == 72 )
with expansion:
72 == 72
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
onivara_old_33, d1
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:1167:
PASSED:
REQUIRE( energy == pmfe::Rational(-861, 5) )
with expansion:
-861/5 == -861/5
src/test-pmfe.cc:1171:
PASSED:
REQUIRE( scored_structure.old_string() == "(.....(...)....(....).................................................)." )
with expansion:
"(.....(...)....(....).................................................)."
==
"(.....(...)....(....).................................................)."
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:595:
PASSED:
REQUIRE( seq.len() == 72 )
with expansion:
72 == 72
-------------------------------------------------------------------------------
O. nivara tRNA (old) MFE
onivara_old_34, d1
-------------------------------------------------------------------------------
src/test-pmfe.cc:589
...............................................................................
src/test-pmfe.cc:1184:
PASSED:
REQUIRE( energy == pmfe::Rational(-567,10) )
with expansion:
-567/10 == -567/10
src/test-pmfe.cc:1188:
PASSED:
REQUIRE( scored_structure.old_string() == "((((((((......((....)).....................(....)..............))))))))." )
with expansion:
"((((((((......((....)).....................(....)..............))))))))."
==
"((((((((......((....)).....................(....)..............))))))))."
===============================================================================
All tests passed (174 assertions in 24 test cases)
Thus, based on preliminary inspection of the testing output, I think that the minor changes to the C++ source documented above should be fine. Please verify with additional external testing: @spoznan.
Overview
As requested by @ceheitsch, this issue documents the main changes to the source code in the fall of 2020 in pull request #2 . The motivation for these changes is to make the previously historical PMFE code compile for use on the newer GA Tech math machines for scientific computing and testing work. Note that there is also a separate branch created around this time to enable the same source code base to compile on a modern MacOS desktop (10.14 -- Mojave era release). The changes to the latter branch are only to documentation and the Makefile for that branch, and did not require any substantial modifications to be noticed in the C++ source code, e.g., only changes were made to the build process and not to any possible functionality that the code logic performs.
Summary of changes made to support / merge the pull request
The following is a brief overview of changes required to make pull request #2 happen:
boost
libraries, these proposed changes should not alter the logic performed by the compiled PMFE code at all.#define BOOST_LOG_DYN_LINK 1
have been removed. It is much simpler, cleaner, and easier to define these settings globally by passing them as compiler options (CFLAGS
) to the source files via theMakefile
(see above). Again, this is only a superficial change to the code.CGAL
library code that have arisen over time. The intent is to just update the definitions of the functions so that the sources now compile without changing the meaning of what the original calls to these functions with the parameters added actually have done historically. See below for additional notes on verifying these changes.Notes on testing the modifications
Why (I surmise) that the C++ source code modifications were necessary
It appears based on inspection of the most recent CGAL library sources, which are these days all header based aside from requisite Boost library support being enabled, that the historical PMFE code took an older version of one of the CGAL headers and made custom modifications to it. For comparison, a copy of the most recent header file contents is reproduced below to emphasize the difference with the customizations (location:
Convex_hull_d/include/CGAL/Regular_complex_d.h
):And then, here is the PMFE version (cf. reproduced
// ----- Added for iB4e
comment markers):Note the form of the calls to
void* & for_compact_container(void *)
function (now with the custom parameter defined in the header file).Preliminary testing and verification of PMFE output consistency
When the PMFE sources are compiled, a SageMath specific object file to support a Python library is built. Several standalone binaries are also produced. One of these binaries is called
pmfe-test
(source file is here). Based on my read of the contents, this implementation is provided as a unit test functionality added to maintain consistency of the outputs produced by the PMFE code over time. Here is the output of running that sub-utility onmath-mulberry
(using the custom local wrapper script I created):Thus, based on preliminary inspection of the testing output, I think that the minor changes to the C++ source documented above should be fine. Please verify with additional external testing: @spoznan.