From 27efaccfd26666cfe543016893bf3f35b054e8d1 Mon Sep 17 00:00:00 2001 From: Eric Nawrocki Date: Tue, 6 Nov 2012 15:09:43 +0000 Subject: [PATCH 01/82] Reverting some changes from recent revisions 4226 and 4231 that modified the CM file output format by changing the 'dbsize' value used for CM exponential tail stats from a long to a double. The values are now again printed as longs, as they were in 1.1rc1. I originally changed to doubles when I fixed bug i31, because dbsize values > 2Gb were problematic on 32-bit machines. However, changing the output format affected reading of binary files and meant that 1.1rc1 press'd files could not be read by future versions (1.1rc2 and beyond), and vice versa. I realized this was a bad thing and so I'm reverting in this revision. The affected functions now check that the dbsize value is less than 2Gb before printing, and fail if it is not. This is okay because the maximum the value will ever be is 160Mb, because that's the maximum value for -L in cmcalibrate. Also changed max for -L in cmcalibrate, previously it was 100 Mb. I increased it to 160 Mb, which is 100-fold higher than the default value of 1.6 Mb. is the total length of random sequence searched during calibration. git-svn-id: https://svn.janelia.org/eddylab/eddys/src/infernal/branches/1.1@4292 db3e70e4-12e1-0310-b23f-81a6e3d09ba7 --- src/cm_file.c | 46 +++++++++++++++++++++++++++++++++------------- src/cmcalibrate.c | 2 +- 2 files changed, 34 insertions(+), 14 deletions(-) diff --git a/src/cm_file.c b/src/cm_file.c index c41d9c7d..7572bd73 100644 --- a/src/cm_file.c +++ b/src/cm_file.c @@ -606,7 +606,7 @@ cm_file_WriteASCII(FILE *fp, int format, CM_t *cm) if (format == -1) format = CM_FILE_1a; - if (format == CM_FILE_1a) fprintf(fp, "INFERNAL1/a [%s | %s]\n", INFERNAL_VERSION, INFERNAL_DATE); + if (format == CM_FILE_1a) fprintf(fp, "INFERNAL1/a [%s | %s]\n", INFERNAL_VERSION, INFERNAL_DATE); else ESL_EXCEPTION(eslEINVAL, "invalid CM file format code"); fprintf(fp, "NAME %s\n", cm->name); @@ -645,18 +645,28 @@ cm_file_WriteASCII(FILE *fp, int format, CM_t *cm) } if (cm->flags & CMH_EXPTAIL_STATS) { - fprintf(fp, "ECMLC %.5f %10.5f %10.5f %10.0f %10d %.6f\n", + /* make sure our dbsize values can be cast to a long reliably, + * even on 32 bit systems (<= 2 Gb), they certainly should be, + * max value in cmcalibrate is 160Mb. (This is related to bug + * i31.) + */ + if(cm->expA[EXP_CM_LC]->dbsize > (2000. * 1000000.)) ESL_EXCEPTION(eslEINVAL, "invalid dbsize (too big) EXP_CM_LC"); + if(cm->expA[EXP_CM_GC]->dbsize > (2000. * 1000000.)) ESL_EXCEPTION(eslEINVAL, "invalid dbsize (too big) EXP_CM_GC"); + if(cm->expA[EXP_CM_LI]->dbsize > (2000. * 1000000.)) ESL_EXCEPTION(eslEINVAL, "invalid dbsize (too big) EXP_CM_LI"); + if(cm->expA[EXP_CM_GI]->dbsize > (2000. * 1000000.)) ESL_EXCEPTION(eslEINVAL, "invalid dbsize (too big) EXP_CM_GI"); + + fprintf(fp, "ECMLC %.5f %10.5f %10.5f %10ld %10d %.6f\n", cm->expA[EXP_CM_LC]->lambda, cm->expA[EXP_CM_LC]->mu_extrap, cm->expA[EXP_CM_LC]->mu_orig, - cm->expA[EXP_CM_LC]->dbsize, cm->expA[EXP_CM_LC]->nrandhits, cm->expA[EXP_CM_LC]->tailp); - fprintf(fp, "ECMGC %.5f %10.5f %10.5f %10.0f %10d %.6f\n", + (long) (cm->expA[EXP_CM_LC]->dbsize + 0.5), cm->expA[EXP_CM_LC]->nrandhits, cm->expA[EXP_CM_LC]->tailp); + fprintf(fp, "ECMGC %.5f %10.5f %10.5f %10ld %10d %.6f\n", cm->expA[EXP_CM_GC]->lambda, cm->expA[EXP_CM_GC]->mu_extrap, cm->expA[EXP_CM_GC]->mu_orig, - cm->expA[EXP_CM_GC]->dbsize, cm->expA[EXP_CM_GC]->nrandhits, cm->expA[EXP_CM_GC]->tailp); - fprintf(fp, "ECMLI %.5f %10.5f %10.5f %10.0f %10d %.6f\n", + (long) (cm->expA[EXP_CM_GC]->dbsize + 0.5), cm->expA[EXP_CM_GC]->nrandhits, cm->expA[EXP_CM_GC]->tailp); + fprintf(fp, "ECMLI %.5f %10.5f %10.5f %10ld %10d %.6f\n", cm->expA[EXP_CM_LI]->lambda, cm->expA[EXP_CM_LI]->mu_extrap, cm->expA[EXP_CM_LI]->mu_orig, - cm->expA[EXP_CM_LI]->dbsize, cm->expA[EXP_CM_LI]->nrandhits, cm->expA[EXP_CM_LI]->tailp); - fprintf(fp, "ECMGI %.5f %10.5f %10.5f %10.0f %10d %.6f\n", + (long) (cm->expA[EXP_CM_LI]->dbsize + 0.5), cm->expA[EXP_CM_LI]->nrandhits, cm->expA[EXP_CM_LI]->tailp); + fprintf(fp, "ECMGI %.5f %10.5f %10.5f %10ld %10d %.6f\n", cm->expA[EXP_CM_GI]->lambda, cm->expA[EXP_CM_GI]->mu_extrap, cm->expA[EXP_CM_GI]->mu_orig, - cm->expA[EXP_CM_GI]->dbsize, cm->expA[EXP_CM_GI]->nrandhits, cm->expA[EXP_CM_GI]->tailp); + (long) (cm->expA[EXP_CM_GI]->dbsize + 0.5), cm->expA[EXP_CM_GI]->nrandhits, cm->expA[EXP_CM_GI]->tailp); } /* main model section */ @@ -855,11 +865,19 @@ cm_file_WriteBinary(FILE *fp, int format, CM_t *cm, off_t *opt_fp7_offset) if (fwrite((char *) &(cm->fp7_evparam[CM_p7_GFLAMBDA]), sizeof(float), 1, fp) != 1) return eslFAIL; } if (cm->flags & CMH_EXPTAIL_STATS) { + long dbsize_long; for(z = 0; z < EXP_NMODES; z++) { + /* make sure our dbsize values can be cast to a long reliably, + * even on 32 bit systems (<= 2 Gb), they certainly should be, + * max value in cmcalibrate is 160Mb. (This is related to bug + * i31.) + */ + if(cm->expA[z]->dbsize > (2000. * 1000000.)) ESL_EXCEPTION(eslEINVAL, "invalid dbsize (too big)"); + dbsize_long = (long) cm->expA[z]->dbsize + 0.5; if (fwrite((char *) &(cm->expA[z]->lambda), sizeof(double), 1, fp) != 1) return eslFAIL; if (fwrite((char *) &(cm->expA[z]->mu_extrap), sizeof(double), 1, fp) != 1) return eslFAIL; if (fwrite((char *) &(cm->expA[z]->mu_orig), sizeof(double), 1, fp) != 1) return eslFAIL; - if (fwrite((char *) &(cm->expA[z]->dbsize), sizeof(double), 1, fp) != 1) return eslFAIL; + if (fwrite((char *) &(dbsize_long), sizeof(long), 1, fp) != 1) return eslFAIL; if (fwrite((char *) &(cm->expA[z]->nrandhits), sizeof(int), 1, fp) != 1) return eslFAIL; if (fwrite((char *) &(cm->expA[z]->tailp), sizeof(double), 1, fp) != 1) return eslFAIL; } @@ -1757,7 +1775,7 @@ read_asc_1p1_cm(CM_FILE *cmfp, int read_fp7, ESL_ALPHABET **ret_abc, CM_t **opt_ cm->expA[exp_mode]->lambda = atof(tok1); cm->expA[exp_mode]->mu_extrap = atof(tok2); cm->expA[exp_mode]->mu_orig = atof(tok3); - cm->expA[exp_mode]->dbsize = atof(tok4); + cm->expA[exp_mode]->dbsize = atof(tok4); /* store as double, even though it was written as a long */ cm->expA[exp_mode]->nrandhits = atoi(tok5); cm->expA[exp_mode]->tailp = atof(tok6); cm->expA[exp_mode]->is_valid = TRUE; @@ -2217,13 +2235,15 @@ read_bin_1p1_cm(CM_FILE *cmfp, int read_fp7, ESL_ALPHABET **ret_abc, CM_t **opt_ if (! fread((char *) &tmp_fp7_gflambda, sizeof(float), 1, cmfp->f)) ESL_XFAIL(eslEFORMAT, cmfp->errbuf, "failed to read additional P7 E-value stats"); } if (cm->flags & CMH_EXPTAIL_STATS) { + long dbsize_long; ESL_ALLOC(cm->expA, sizeof(ExpInfo_t *) * EXP_NMODES); for(x = 0; x < EXP_NMODES; x++) { cm->expA[x] = CreateExpInfo(); if (! fread((char *) &(cm->expA[x]->lambda), sizeof(double), 1, cmfp->f)) ESL_XFAIL(eslEFORMAT, cmfp->errbuf, "failed to read CM E-value stats"); if (! fread((char *) &(cm->expA[x]->mu_extrap), sizeof(double), 1, cmfp->f)) ESL_XFAIL(eslEFORMAT, cmfp->errbuf, "failed to read CM E-value stats"); if (! fread((char *) &(cm->expA[x]->mu_orig), sizeof(double), 1, cmfp->f)) ESL_XFAIL(eslEFORMAT, cmfp->errbuf, "failed to read CM E-value stats"); - if (! fread((char *) &(cm->expA[x]->dbsize), sizeof(double), 1, cmfp->f)) ESL_XFAIL(eslEFORMAT, cmfp->errbuf, "failed to read CM E-value stats"); + if (! fread((char *) &(dbsize_long), sizeof(long), 1, cmfp->f)) ESL_XFAIL(eslEFORMAT, cmfp->errbuf, "failed to read CM E-value stats"); + cm->expA[x]->dbsize = (double) dbsize_long; if (! fread((char *) &(cm->expA[x]->nrandhits), sizeof(int), 1, cmfp->f)) ESL_XFAIL(eslEFORMAT, cmfp->errbuf, "failed to read CM E-value stats"); if (! fread((char *) &(cm->expA[x]->tailp), sizeof(double), 1, cmfp->f)) ESL_XFAIL(eslEFORMAT, cmfp->errbuf, "failed to read CM E-value stats"); } @@ -2536,7 +2556,7 @@ read_asc_1p0_cm(CM_FILE *cmfp, int read_fp7, ESL_ALPHABET **ret_abc, CM_t **opt_ if ((status = esl_strtok_adv(&s, " \t\n", &tok, &toklen, NULL)) != eslOK) ESL_XFAIL(eslEFORMAT, cmfp->errbuf, "No dbsize read on E-xx line"); if (! is_integer(tok)) ESL_XFAIL(eslEFORMAT, cmfp->errbuf, "dbsize is not integer on E-xx line"); - cm->expA[exp_mode]->dbsize = atof(tok); + cm->expA[exp_mode]->dbsize = atof(tok); /* read it as a double, even though it's written as a long */ if ((status = esl_strtok_adv(&s, " \t\n", &tok, &toklen, NULL)) != eslOK) ESL_XFAIL(eslEFORMAT, cmfp->errbuf, "No nrandhits read on E-xx line"); if (! is_integer(tok)) ESL_XFAIL(eslEFORMAT, cmfp->errbuf, "nrandhits is not integer on E-xx line"); diff --git a/src/cmcalibrate.c b/src/cmcalibrate.c index 76267660..b3aee91d 100644 --- a/src/cmcalibrate.c +++ b/src/cmcalibrate.c @@ -74,7 +74,7 @@ typedef struct { static ESL_OPTIONS options[] = { /* name type default env range toggles reqs incomp help docgroup*/ { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 1 }, - { "-L", eslARG_REAL, "1.6", NULL, "0.01<=x<=100.", NULL, NULL, NULL, "set random seq length to search in Mb to ", 1 }, + { "-L", eslARG_REAL, "1.6", NULL, "0.01<=x<=160.", NULL, NULL, NULL, "set random seq length to search in Mb to ", 1 }, /* Options for predicting running time and memory requirements */ { "--forecast", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, NULL, "don't do calibration, predict running time and exit", 2 }, { "--nforecast", eslARG_INT, NULL, NULL, "n>0", NULL, "--forecast", NULL, "w/--forecast, predict time with processors (maybe for MPI)", 2 }, From 6e6fd01ffc0285666b248948014d65eafc534176 Mon Sep 17 00:00:00 2001 From: Eric Nawrocki Date: Wed, 14 Nov 2012 01:00:34 +0000 Subject: [PATCH 02/82] Fix to cmbuild --refine related to bug i32, 'fixed' in r4234. That revision fixed --refine when used with alignments with individual sequence SS annotation but broke cmbuild --refine for sequences without it. 'make devcheck' finally caught this. git-svn-id: https://svn.janelia.org/eddylab/eddys/src/infernal/branches/1.1@4301 db3e70e4-12e1-0310-b23f-81a6e3d09ba7 --- src/cmbuild.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cmbuild.c b/src/cmbuild.c index e2541566..77107742 100644 --- a/src/cmbuild.c +++ b/src/cmbuild.c @@ -1025,7 +1025,7 @@ static P7_PRIOR * cm_p7_prior_CreateNucleic(void); sq_block->first_seqidx = 0; for(i = 0; i < nseq; i++) { tmp_sqp = sq_block->list + i; - if(input_msa->ss[i]) ESL_ALLOC(tmp_sqp->ss, sizeof(char) * tmp_sqp->salloc); + if(input_msa->ss && input_msa->ss[i]) ESL_ALLOC(tmp_sqp->ss, sizeof(char) * tmp_sqp->salloc); esl_sq_GetFromMSA(input_msa, i, tmp_sqp); sq_block->count++; } From fc9fd4eb375a779d9f7a9ac5d685671a7f9eb746 Mon Sep 17 00:00:00 2001 From: Eric Nawrocki Date: Wed, 14 Nov 2012 11:21:10 +0000 Subject: [PATCH 03/82] bug-i33.pl was using an absolute path to a required file (bug-i33.cm) which failed when using build directories. A relative path is now used which resolves the problem. git-svn-id: https://svn.janelia.org/eddylab/eddys/src/infernal/branches/1.1@4303 db3e70e4-12e1-0310-b23f-81a6e3d09ba7 --- testsuite/bug-i33.pl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/testsuite/bug-i33.pl b/testsuite/bug-i33.pl index dcb5186b..ac93f485 100644 --- a/testsuite/bug-i33.pl +++ b/testsuite/bug-i33.pl @@ -16,6 +16,7 @@ $cmsearch = shift; $cmbuild = shift; +$cmfile = shift; $ok = 1; # Make our test sequence file, i33.1 @@ -28,7 +29,7 @@ END close OUT; if ($ok) { - system("$cmsearch -A i33.2 bug-i33.cm i33.1 > /dev/null 2> /dev/null"); + system("$cmsearch -A i33.2 $cmfile i33.1 > /dev/null 2> /dev/null"); if ($? != 0) { $ok = 0; } } From 297f16463c99ae790c1ae278db7993178b86c6b6 Mon Sep 17 00:00:00 2001 From: Eric Nawrocki Date: Thu, 15 Nov 2012 19:56:18 +0000 Subject: [PATCH 04/82] Updates for 1.1rc2 release. git-svn-id: https://svn.janelia.org/eddylab/eddys/src/infernal/branches/1.1@4305 db3e70e4-12e1-0310-b23f-81a6e3d09ba7 --- configure.ac | 8 +- documentation/userguide/install.tex | 10 +- documentation/userguide/tutorial.tex | 185 ++++++++++++++++++----------------- release-notes/RELEASE-1.1rc2 | 43 ++++++++ 4 files changed, 146 insertions(+), 100 deletions(-) create mode 100644 release-notes/RELEASE-1.1rc2 diff --git a/configure.ac b/configure.ac index 9ecbfe23..e21379e6 100644 --- a/configure.ac +++ b/configure.ac @@ -44,7 +44,7 @@ # Autoconf 2.61 has a bug in AC_FUNC_FSEEKO; don't use it. AC_PREREQ(2.63) -AC_INIT(Infernal, 1.1rc1, eddys@janelia.hhmi.org, infernal) +AC_INIT(Infernal, 1.1rc2, nawrockie@janelia.hhmi.org, infernal) AC_MSG_NOTICE([Configuring Infernal for your system.]) # remember if the user is overriding CFLAGS @@ -73,7 +73,7 @@ fi # ################################################################ -INFERNAL_DATE="June 2012" +INFERNAL_DATE="November 2012" INFERNAL_COPYRIGHT="Copyright (C) 2012 Howard Hughes Medical Institute." INFERNAL_LICENSE="Freely distributed under the GNU General Public License (GPLv3)." INFERNAL_VERSION=$PACKAGE_VERSION @@ -82,7 +82,7 @@ INFERNAL_ESLDIR="easel" INFERNAL_HMMERDIR="hmmer" INFERNAL_SADIR="hmmer/libdivsufsort" -HMMER_DATE="June 2012" +HMMER_DATE="November 2012" HMMER_COPYRIGHT="Copyright (C) 2012 Howard Hughes Medical Institute." HMMER_LICENSE="Freely distributed under the GNU General Public License (GPLv3)." HMMER_VERSION=i$PACKAGE_VERSION @@ -90,7 +90,7 @@ HMMER_URL="http://hmmer.org/" HMMER_ESLDIR="../easel" HMMER_SADIR="libdivsufsort" -EASEL_DATE="June 2012" +EASEL_DATE="November 2012" EASEL_COPYRIGHT="Copyright (C) 2012 HHMI Janelia Farm Research Campus" EASEL_LICENSE="Freely distributed under the Janelia Software License." EASEL_VERSION="i$PACKAGE_VERSION" diff --git a/documentation/userguide/install.tex b/documentation/userguide/install.tex index 0c6c1dca..0be3c177 100644 --- a/documentation/userguide/install.tex +++ b/documentation/userguide/install.tex @@ -4,14 +4,14 @@ \section{Installation} \subsection{Quick installation instructions} -Download \prog{infernal-1.1rc1.tar.gz} from \url{http://infernal.janelia.org/}, or +Download \prog{infernal-1.1rc2.tar.gz} from \url{http://infernal.janelia.org/}, or directly from -\url{ftp://selab.janelia.org/pub/software/infernal/infernal-1.1rc1.tar.gz}; +\url{ftp://selab.janelia.org/pub/software/infernal/infernal-1.1rc2.tar.gz}; unpack it, configure, and make: -\user{wget ftp://selab.janelia.org/pub/software/infernal/infernal-1.1rc1.tar.gz}\\ -\user{tar xf infernal-1.1rc1.tar.gz}\\ -\user{cd infernal-1.1rc1}\\ +\user{wget ftp://selab.janelia.org/pub/software/infernal/infernal-1.1rc2.tar.gz}\\ +\user{tar xf infernal-1.1rc2.tar.gz}\\ +\user{cd infernal-1.1rc2}\\ \user{./configure}\\ \user{make} diff --git a/documentation/userguide/tutorial.tex b/documentation/userguide/tutorial.tex index ae04eefe..0442e90d 100644 --- a/documentation/userguide/tutorial.tex +++ b/documentation/userguide/tutorial.tex @@ -199,7 +199,7 @@ \subsubsection{Step 1: build a covariance model with cmbuild} \begin{sreoutput} # cmbuild :: covariance model construction from multiple sequence alignments -# INFERNAL 1.1rc1 (June 2012) +# INFERNAL 1.1rc2 (November 2012) # Copyright (C) 2012 Howard Hughes Medical Institute. # Freely distributed under the GNU General Public License (GPLv3). # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -227,13 +227,13 @@ \subsubsection{Step 1: build a covariance model with cmbuild} % ^ sequences were only counted as an ``effective'' total sequence number (\otext{eff\_nseq}) of 3.73. The model includes 21 basepairs and 2 -% ^^^^ ^^ ^ +% ^^^^ ^^ ^ bifurcations. The model ended up with a relative entropy per position (\otext{rel entropy, CM}; information content) of 0.783 bits. If the -% ^^^^^ +% ^^^^^ secondary structure information of the model were ignored the relative entropy per position (\otext{rel entropy, HMM}) would be 0.489 bits. -% ^^^^^ +% ^^^^^ This output format is rudimentary. Infernal knows quite a bit more information about what it's done to build this CM, but it's not displaying it. You don't need to know more to be able to use the @@ -284,7 +284,7 @@ \subsubsection{Step 2: calibrate the model with cmcalibrate} \begin{sreoutput} # cmcalibrate :: fit exponential tails for CM E-values -# INFERNAL 1.1rc1 (June 2012) +# INFERNAL 1.1rc2 (November 2012) # Copyright (C) 2012 Howard Hughes Medical Institute. # Freely distributed under the GNU General Public License (GPLv3). # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -322,7 +322,7 @@ \subsubsection{Step 2: calibrate the model with cmcalibrate} model, copy over the \otext{tRNA5.cm} file you just made with the calibrated version: -\user{cp tRNA5.c.cm tRNA5.cm}\\ +\user{cp tutorial/tRNA5.c.cm tRNA5.cm}\\ \subsubsection{Step 3: search a sequence database with cmsearch} @@ -332,14 +332,15 @@ \subsubsection{Step 3: search a sequence database with cmsearch} \otext{NC\_13790.1}). We'll use this file as our database. To perform the search: -\user{cmsearch tRNA5.cm mrum-genome.fa}\\ +\user{cmsearch tRNA5.cm tutorial/mrum-genome.fa}\\ +% tutorial regression: tRNA5-search.out As before, the first section is the header, telling you what program your ran, on what, and with what options: \begin{sreoutput} # cmsearch :: search CM(s) against a sequence database -# INFERNAL 1.1rc1 (June 2012) +# INFERNAL 1.1rc2 (November 2012) # Copyright (C) 2012 Howard Hughes Medical Institute. # Freely distributed under the GNU General Public License (GPLv3). # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -506,7 +507,6 @@ \subsubsection{Step 3: search a sequence database with cmsearch} hit number 43. First, take a look at the first four lines for this hit: -% tutorial regression: tRNA5-search.out \begin{sreoutput} >> NC_013790.1 Methanobrevibacter ruminantium M1 chromosome, complete genome rank E-value score bias mdl mdl from mdl to seq from seq to acc trunc gc @@ -578,18 +578,19 @@ \subsubsection{Step 3: search a sequence database with cmsearch} more informative than the simple least-common-denominator format we used in the input alignment file. It's designed to make it easier to see the secondary structure by eye. The format is described in detail -later (see WUSS format in section~\ref{section:formats}); for now, here's all you need to -know. Basepairs in simple stem loops are annotated with \otext{<>} -characters. Basepairs enclosing multifurcations (multiple stem loops) -are annotated with \otext{()}, such as the tRNA acceptor stem in this -example. In more complicated structures, \otext{[]} and \otext{\{\}} -annotations also show up, to reflect deeper nestings of -multifurcations. For single stranded residues, \otext{\_} characters -mark hairpin loops; \otext{-} characters mark interior loops and -bulges; \otext{,} characters mark single-stranded residues in -multifurcation loops; and \otext{:} characters mark single stranded -residues external to any secondary structure. Insertions relative to -this consensus are annotated by a \otext{.} character. +later (see WUSS format in section~\ref{section:formats}); for now, +here's all you need to know. Basepairs in simple stem loops are +annotated with \otext{<>} characters. Basepairs enclosing +multifurcations (multiple stem loops) are annotated with \otext{()}, +such as the tRNA acceptor stem in this example. In more complicated +structures, \otext{[]} and \otext{\{\}} annotations also show up, to +reflect deeper nestings of multifurcations. For single stranded +residues, \otext{\_} characters mark hairpin loops; \otext{-} +characters mark interior loops and bulges; \otext{,} characters mark +single-stranded residues in multifurcation loops; and \otext{:} +characters mark single stranded residues external to any secondary +structure. Insertions relative to this consensus are annotated by a +\otext{.} character. The line above the \otext{CS} line ends with \otext{NC} and marks negative scoring non-canonical basepairs in the alignment with a @@ -667,15 +668,15 @@ \subsubsection{Step 3: search a sequence database with cmsearch} Query model(s): 1 (72 consensus positions) Target sequences: 1 (5874406 residues searched) Target sequences re-searched for truncated hits: 1 (360 residues re-searched) -Windows passing local HMM SSV filter: 11197 (0.2108); expected (0.35) +Windows passing local HMM SSV filter: 11200 (0.2111); expected (0.35) Windows passing local HMM Viterbi filter: (off) Windows passing local HMM Viterbi bias filter: (off) -Windows passing local HMM Forward filter: 140 (0.002747); expected (0.005) -Windows passing local HMM Forward bias filter: 139 (0.002728); expected (0.005) -Windows passing glocal HMM Forward filter: 88 (0.001973); expected (0.005) -Windows passing glocal HMM Forward bias filter: 88 (0.001973); expected (0.005) -Envelopes passing glocal HMM envelope defn filter: 101 (0.001358); expected (0.005) -Envelopes passing local CM CYK filter: 60 (0.0007629); expected (0.0001) +Windows passing local HMM Forward filter: 137 (0.002691); expected (0.005) +Windows passing local HMM Forward bias filter: 134 (0.002621); expected (0.005) +Windows passing glocal HMM Forward filter: 87 (0.001923); expected (0.005) +Windows passing glocal HMM Forward bias filter: 87 (0.001923); expected (0.005) +Envelopes passing glocal HMM envelope defn filter: 100 (0.001342); expected (0.005) +Envelopes passing local CM CYK filter: 60 (0.0007631); expected (0.0001) Total CM hits reported: 56 (0.0007205); includes 0 truncated hit(s) # CPU time: 2.66u 0.04s 00:00:02.70 Elapsed: 00:00:01.77 @@ -732,28 +733,29 @@ \subsubsection{Step 3: search a sequence database with cmsearch} % ^^^^ residues will pass the filter). Here, about 21\% of the database in % ^^^^ -11,197 separate windows got through the SSV filter. For a database of +11,200 separate windows got through the SSV filter. For a database of %^^^^^ this size, the local Viterbi filter is turned off. The local Forward filter is set to allow an expected 0.5\% of the database survive. Here about % ^^^^ -0.3\% survives in 140 windows. Next, each surviving window is checked +0.3\% survives in 137 windows. Next, each surviving window is checked %^^ to see if the target sequence is ``obviously'' so biased in its composition that it's unlikely to be a true homolog. This is called the ``bias filter''\footnote{There's also a bias filter step used in the local Viterbi filter stage, when it is used.} and applying a bit score correction to previous filter's score for each window and -recomputing the P-value. Exactly 1 of the 140 windows fails to pass -% ^ ^^^ -the local Forward bias filter stage Next, the Forward algorithm is +recomputing the P-value. Three of the 137 windows fail to pass +% ^^^^^ ^^^ +the local Forward bias filter stage. Next, the Forward algorithm is used to score each window again, but this time with the HMM configured in glocal mode requiring a full length alignment to the model\footnote{The use of glocal Forward is another important difference between Infernal and HMMER3's (v3.0) pipeline. HMMER v3.0 only uses local HMM algorithms.} As with the local stage, an expected 0.5\% of the database is expected to survive. In this case, -88 of the 139 windows, comprising about 0.2\% of the database, +87 of the 134 windows, comprising about 0.2\% of the database, +%^ ^^^ survive. The bias filter is run again, this time applying a correction to the glocal Forward scores. For this search, 0 windows are removed at this stage. The envelope definition stage is next. This stage is very @@ -763,13 +765,13 @@ \subsubsection{Step 3: search a sequence database with cmsearch} or more hit envelopes in each window, where each envelope contains one putative hit. Often residues at the beginning and ends of windows are determined to be nonhomologous and are not included in the -envelope. In this search, 101 envelopes are defined within the 81 +envelope. In this search, 100 envelopes are defined within the 87 % ^^^ ^^ windows. Note that the envelopes comprise only about 70\% of the % ^^^ -residues from the 81 windows, indicated by the drop of 0.1973\% to +residues from the 87 windows, indicated by the drop of 0.1923\% to % ^^^^^^^^ -0.1358\%. +0.1342\%. %%^^^^ After hit envelopes have been defined with the filter HMM, the two @@ -792,6 +794,7 @@ \subsubsection{Step 3: search a sequence database with cmsearch} Forward algorithm) is used to define final hit boundaries and scores. Hits with scores above the reporting threshold were output, as described above. In this search there were 56 such hits. +% ^^ Finally, the running time of the search is reported, in CPU time and elapsed time. This search took about 1.8 seconds of elapsed (wall @@ -833,7 +836,9 @@ \subsubsection{Truncated RNA detection} beginning and end of each sequence which must be re-searched for truncated hits. For our tRNA model the maximum expected length is 90, so exactly 360 residues were re-searched: the first and final 90 +%^ ^^^ ^^ residues on the top strand, and the first and final 90 residues on +% ^^ the bottom strand. There is one more aspect of truncated hit detection that is important @@ -853,9 +858,10 @@ \subsection{Searching a CM database with a query sequence} known/detectable RNAs in a given sequence. It takes a single query sequence and a CM database as input. The CM database might be Rfam, for example, or another collection of your choice. \prog{cmscan} is -new to version 1.1 of Infernal. It is designed to be useful primarily -for the analysis metagenomic datasets, in which one wants to know what -families of RNAs are represented in the sequence dataset. +new to version 1.1 of Infernal. It is designed to be useful for +sequence datasets from RNA-Seq experiments or metagenomics surveys, +for which one wants to know what families of RNAs are represented in +the sequence dataset. \subsubsection{Step 1: create an CM database flatfile} @@ -931,6 +937,7 @@ \subsubsection{Step 3: search the CM database with cmscan} To scan the sequences with our database: \user{cmscan minifam.cm tutorial/metag-example.fa} +%tutorial regression: metag-scan.out The header and the first section of the output will look like: @@ -938,13 +945,13 @@ \subsubsection{Step 3: search the CM database with cmscan} \begin{sreoutput} # cmscan :: search sequence(s) against a CM database -# INFERNAL 1.1rc1 (June 2012) +# INFERNAL 1.1rc2 (November 2012) # Copyright (C) 2012 Howard Hughes Medical Institute. # Freely distributed under the GNU General Public License (GPLv3). # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# query sequence file: ../tutorial/metag-example.fa +# query sequence file: tutorial/metag-example.fa # target CM database: minifam.cm -# number of worker threads: 2 +# number of worker threads: 8 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Query: AAGA01015927.1 [L=943] @@ -953,8 +960,8 @@ \subsubsection{Step 3: search the CM database with cmscan} rank E-value score bias modelname start end mdl trunc gc description ---- --------- ------ ----- --------- ------ ------ --- ----- ---- ----------- (1) ! 3.3e-19 77.3 0.0 5S_rRNA 59 174 + cm no 0.66 5S ribosomal RNA - (2) ! 9.3e-19 62.4 0.0 tRNA5 229 302 + cm no 0.62 - (3) ! 6e-16 53.5 0.0 tRNA5 314 386 + cm no 0.59 + (2) ! 9.3e-19 62.4 0.0 tRNA5 229 302 + cm no 0.62 - + (3) ! 6e-16 53.5 0.0 tRNA5 314 386 + cm no 0.59 - \end{sreoutput} \prog{cmscan} has identified three putative RNAs in the first query @@ -1007,13 +1014,13 @@ \subsubsection{Step 3: search the CM database with cmscan} Query sequence(s): 1 (1886 residues searched) Query sequences re-searched for truncated hits: 1 (992.0 residues re-searched, avg per model) Target model(s): 3 (382 consensus positions) -Windows passing local HMM SSV filter: 16 (0.331); expected (0.35) +Windows passing local HMM SSV filter: 16 (0.3323); expected (0.35) Windows passing local HMM Viterbi filter: (off) Windows passing local HMM Viterbi bias filter: (off) -Windows passing local HMM Forward filter: 4 (0.09138); expected (0.02) -Windows passing local HMM Forward bias filter: 4 (0.09138); expected (0.02) -Windows passing glocal HMM Forward filter: 3 (0.09138); expected (0.02) -Windows passing glocal HMM Forward bias filter: 3 (0.09138); expected (0.02) +Windows passing local HMM Forward filter: 4 (0.09822); expected (0.02) +Windows passing local HMM Forward bias filter: 4 (0.09822); expected (0.02) +Windows passing glocal HMM Forward filter: 3 (0.09822); expected (0.02) +Windows passing glocal HMM Forward bias filter: 3 (0.09822); expected (0.02) Envelopes passing glocal HMM envelope defn filter: 4 (0.05189); expected (0.02) Envelopes passing local CM CYK filter: 4 (0.05189); expected (0.0001) Total CM hits reported: 3 (0.03046); includes 0 truncated hit(s) @@ -1085,7 +1092,7 @@ \subsubsection{Truncated hit and local end alignment example} \otext{trunc} column reads \otext{5'} indicating that Infernal predicts the 5' end (beginning) of this Cobalamin riboswitch is missing. (Note that this hit is on the bottom (reverse) strand so the -Cobalamin hit is actually predicted to extend past the 3' end of the +Cobalamin hit is actually predicted to extend past the end of the input sequence (past residue 934), but on the opposite strand.) The 5' end of the alignment indicates this with special annotation: the \otext{<[31]*} in the model line indicates that the missing sequence @@ -1142,13 +1149,6 @@ \subsubsection{Truncated hit and local end alignment example} character. \subsection{Creating multiple alignments with cmalign} -% tutorial regression: -% cmsearch -A mrum-tRNAs.stk tRNA5.cm mrum-genome.fa -% esl-reformat --rename mrum-tRNA fasta mrum-tRNAs.stk > mrum-tRNAs.fa -% then manually removed all but first 20 sequences, -% and sequence descriptions, and converted lowercase to uppercase. -% Saved a version of this file with mrum-tRNA.20 for an example of -% local alignment. The file \otext{tutorial/mrum-tRNAs10.fa} is a FASTA file containing the 10 of the tRNA hits above the inclusion threshold (with an E-value less than $0.01$) found by \prog{cmsearch} in our @@ -1160,12 +1160,13 @@ \subsection{Creating multiple alignments with cmalign} alignment: \user{cmalign tRNA5.cm tutorial/mrum-tRNAs10.fa} +% tutorial regression: mrum-tRNAs10.sto The output of this is a Stockholm format multiple alignment file: \begin{tinysreoutput} # STOCKHOLM 1.0 -#=GF AU Infernal 1.1rc1 +#=GF AU Infernal 1.1rc2 mrum-tRNA.1 GGAGCUAUAGCUCAAU..GGC..AGAGCGUUUGGCUGACAU........................................CCAAAAGGUUAUGGGUUCGAUUCCCUUUAGCCCCA #=GR mrum-tRNA.1 PP ****************..***..******************........................................*********************************** @@ -1290,11 +1291,12 @@ \subsubsection{cmalign assumes sequences may be truncated} below so it will fit on the page): \user{cmalign tutorial/Cobalamin.c.cm tutorial/Cobalamin.fa} +% tutorial regression: cobalamin-align.sto \label{cmalign-cobalamin} \begin{sreoutput} # STOCKHOLM 1.0 -#=GF AU Infernal 1.1rc1 +#=GF AU Infernal 1.1rc2 Cobalamin.1 -------------------------------GUAGGCAAAAGGAAGAGGAAGgAUGGUGGAAAUCCUUCACGGGCCCGGCCA #=GR Cobalamin.1 PP ...............................44455566666899******989**************************** @@ -1382,6 +1384,7 @@ \subsection{Searching a sequence database for RNAs with unknown or no To build a structureless tRNA model from this alignment, execute: \user{cmbuild --noss tRNA5-noss.cm tutorial/tRNA5.sto} +%tutorial regression: trna-noss-build.out The \otext{--noss} option is required when the alignment file lacks structure annotation. By forcing the use of \otext{--noss} we're @@ -1393,7 +1396,7 @@ \subsection{Searching a sequence database for RNAs with unknown or no \begin{sreoutput} # cmbuild :: covariance model construction from multiple sequence alignments -# INFERNAL 1.1rc1 (June 2012) +# INFERNAL 1.1rc2 (November 2012) # Copyright (C) 2012 Howard Hughes Medical Institute. # Freely distributed under the GNU General Public License (GPLv3). # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1426,11 +1429,11 @@ \subsection{Searching a sequence database for RNAs with unknown or no Now, let's repeat the search of the \emph{M. ruminantium} genome but using our structureless tRNA model: -\user{cmsearch tRNA5-noss.cm mrum-genome.fa}\\ +\user{cmsearch tRNA5-noss.cm tutorial/mrum-genome.fa}\\ +%tutorial regression: trna-noss-search.out -This search is faster than the first one (though you may not be able -to tell), because only profile HMM algorithms are used this time -around. Take a look at the list of hits: +This search is faster than the first one because only profile HMM +algorithms are used this time around. Take a look at the list of hits: \newpage @@ -1441,8 +1444,8 @@ \subsection{Searching a sequence database for RNAs with unknown or no (2) ! 3e-07 32.2 0.0 NC_013790.1 762496 762559 + hmm - 0.64 Methanobrevibacter ruminantium M1 chromosome, complete genome (3) ! 3e-07 32.2 0.0 NC_013790.1 2041698 2041635 - hmm - 0.64 Methanobrevibacter ruminantium M1 chromosome, complete genome (4) ! 5e-06 28.3 0.0 NC_013790.1 2585264 2585203 - hmm - 0.56 Methanobrevibacter ruminantium M1 chromosome, complete genome - (5) ! 6.4e-06 28.0 0.0 NC_013790.1 735143 735198 + hmm - 0.59 Methanobrevibacter ruminantium M1 chromosome, complete genome - (6) ! 7.1e-06 27.9 0.0 NC_013790.1 2351247 2351188 - hmm - 0.57 Methanobrevibacter ruminantium M1 chromosome, complete genome + (5) ! 6.1e-06 28.1 0.0 NC_013790.1 735143 735198 + hmm - 0.59 Methanobrevibacter ruminantium M1 chromosome, complete genome + (6) ! 7e-06 27.9 0.0 NC_013790.1 2351247 2351188 - hmm - 0.57 Methanobrevibacter ruminantium M1 chromosome, complete genome (7) ! 1.2e-05 27.2 0.0 NC_013790.1 662193 662251 + hmm - 0.64 Methanobrevibacter ruminantium M1 chromosome, complete genome (8) ! 1.2e-05 27.1 0.0 NC_013790.1 2186009 2185951 - hmm - 0.51 Methanobrevibacter ruminantium M1 chromosome, complete genome (9) ! 4.2e-05 25.4 0.0 NC_013790.1 2585183 2585118 - hmm - 0.56 Methanobrevibacter ruminantium M1 chromosome, complete genome @@ -1458,25 +1461,24 @@ \subsection{Searching a sequence database for RNAs with unknown or no (19) ! 0.0057 18.7 0.0 NC_013790.1 1160527 1160608 + hmm - 0.59 Methanobrevibacter ruminantium M1 chromosome, complete genome (20) ! 0.0074 18.3 0.0 NC_013790.1 361056 360994 - hmm - 0.40 Methanobrevibacter ruminantium M1 chromosome, complete genome ------ inclusion threshold ------ - (21) ? 0.012 17.7 0.0 NC_013790.1 2151679 2151737 + hmm - 0.56 Methanobrevibacter ruminantium M1 chromosome, complete genome - (22) ? 0.012 17.7 0.0 NC_013790.1 917729 917784 + hmm - 0.61 Methanobrevibacter ruminantium M1 chromosome, complete genome - (23) ? 0.019 17.1 0.0 NC_013790.1 2327123 2327043 - hmm - 0.62 Methanobrevibacter ruminantium M1 chromosome, complete genome - (24) ? 0.023 16.7 0.0 NC_013790.1 360973 360920 - hmm - 0.54 Methanobrevibacter ruminantium M1 chromosome, complete genome - (25) ? 0.037 16.1 0.0 NC_013790.1 2350982 2350919 - hmm - 0.50 Methanobrevibacter ruminantium M1 chromosome, complete genome - (26) ? 0.039 16.1 0.0 NC_013790.1 361671 361606 - hmm - 0.50 Methanobrevibacter ruminantium M1 chromosome, complete genome - (27) ? 0.039 16.0 0.0 NC_013790.1 2680176 2680227 + hmm - 0.62 Methanobrevibacter ruminantium M1 chromosome, complete genome - (28) ? 0.062 15.4 0.0 NC_013790.1 2585067 2585000 - hmm - 0.59 Methanobrevibacter ruminantium M1 chromosome, complete genome - (29) ? 0.063 15.4 0.0 NC_013790.1 362793 362738 - hmm - 0.46 Methanobrevibacter ruminantium M1 chromosome, complete genome - (30) ? 0.063 15.4 0.0 NC_013790.1 1064778 1064857 + hmm - 0.62 Methanobrevibacter ruminantium M1 chromosome, complete genome - (31) ? 0.072 15.2 0.0 NC_013790.1 2749938 2749884 - hmm - 0.47 Methanobrevibacter ruminantium M1 chromosome, complete genome - (32) ? 0.073 15.2 0.0 NC_013790.1 2749832 2749778 - hmm - 0.47 Methanobrevibacter ruminantium M1 chromosome, complete genome - (33) ? 0.12 14.5 0.0 NC_013790.1 361729 361689 - hmm - 0.56 Methanobrevibacter ruminantium M1 chromosome, complete genome - (34) ? 1.3 11.2 0.0 NC_013790.1 361439 361393 - hmm - 0.49 Methanobrevibacter ruminantium M1 chromosome, complete genome - (35) ? 4.4 9.6 0.0 NC_013790.1 2583867 2583803 - hmm - 0.49 Methanobrevibacter ruminantium M1 chromosome, complete genome - (36) ? 6 9.1 0.0 NC_013790.1 546054 546021 - hmm - 0.68 Methanobrevibacter ruminantium M1 chromosome, complete genome + (21) ? 0.011 17.7 0.0 NC_013790.1 2151679 2151737 + hmm - 0.56 Methanobrevibacter ruminantium M1 chromosome, complete genome + (22) ? 0.019 17.1 0.0 NC_013790.1 2327123 2327043 - hmm - 0.62 Methanobrevibacter ruminantium M1 chromosome, complete genome + (23) ? 0.023 16.7 0.0 NC_013790.1 360973 360920 - hmm - 0.54 Methanobrevibacter ruminantium M1 chromosome, complete genome + (24) ? 0.037 16.1 0.0 NC_013790.1 2350982 2350919 - hmm - 0.50 Methanobrevibacter ruminantium M1 chromosome, complete genome + (25) ? 0.039 16.1 0.0 NC_013790.1 361671 361606 - hmm - 0.50 Methanobrevibacter ruminantium M1 chromosome, complete genome + (26) ? 0.039 16.0 0.0 NC_013790.1 2680176 2680227 + hmm - 0.62 Methanobrevibacter ruminantium M1 chromosome, complete genome + (27) ? 0.062 15.4 0.0 NC_013790.1 2585067 2585000 - hmm - 0.59 Methanobrevibacter ruminantium M1 chromosome, complete genome + (28) ? 0.063 15.4 0.0 NC_013790.1 362793 362738 - hmm - 0.46 Methanobrevibacter ruminantium M1 chromosome, complete genome + (29) ? 0.063 15.4 0.0 NC_013790.1 1064778 1064857 + hmm - 0.62 Methanobrevibacter ruminantium M1 chromosome, complete genome + (30) ? 0.072 15.2 0.0 NC_013790.1 2749938 2749884 - hmm - 0.47 Methanobrevibacter ruminantium M1 chromosome, complete genome + (31) ? 0.073 15.2 0.0 NC_013790.1 2749832 2749778 - hmm - 0.47 Methanobrevibacter ruminantium M1 chromosome, complete genome + (32) ? 0.12 14.5 0.0 NC_013790.1 361729 361689 - hmm - 0.56 Methanobrevibacter ruminantium M1 chromosome, complete genome + (33) ? 1.3 11.2 0.0 NC_013790.1 361439 361393 - hmm - 0.49 Methanobrevibacter ruminantium M1 chromosome, complete genome + (34) ? 4.4 9.6 0.0 NC_013790.1 2583867 2583803 - hmm - 0.49 Methanobrevibacter ruminantium M1 chromosome, complete genome + (35) ? 5.9 9.2 0.0 NC_013790.1 546054 546021 - hmm - 0.68 Methanobrevibacter ruminantium M1 chromosome, complete genome \end{sreoutput} -Note that this time we only find 36 hits (20 with E-values less than +Note that this time we only find 35 hits (20 with E-values less than the inclusion threshold of 0.01) compared to 56 (with 54 less than 0.01) in the original search with the structure-based CM. The increased sensitivity in the initial CM search exemplifies the @@ -1498,16 +1500,16 @@ \subsection{Searching a sequence database for RNAs with unknown or no at the first alignment: \begin{sreoutput} ->> gi|288559258|ref|NC_013790.1| Methanobrevibacter ruminantium M1 chromosome, complete genome +>> NC_013790.1 Methanobrevibacter ruminantium M1 chromosome, complete genome rank E-value score bias mdl mdl from mdl to seq from seq to acc trunc gc ---- --------- ------ ----- --- -------- -------- ----------- ----------- ---- ----- ---- (1) ! 3.6e-09 38.2 0.0 hmm 5 67 .. 362022 361960 - .. 0.93 - 0.46 - ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: CS - tRNA5.noss 5 auAUaGcgcAGUGGuAGcGCGgcagcCUgucaagguggAGGUCCuggGUUCGAUUCccaGUgu 67 - uAUaGc+cA+UGG AG+GCG +g CUg ca + AGGU uggGUUCGAUUCcc U+ - gi|288559258|ref|NC_013790.1| 362022 CUAUAGCUCAAUGGCAGAGCGUUUGGCUGACAUCCAAAAGGUUAUGGGUUCGAUUCCCUUUAG 361960 - 689******************************************************988876 PP + ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: CS + tRNA5 5 auAUaGcgcAGUGGuAGcGCGgcagcCUgucaagguggAGGUCCuggGUUCGAUUCccaGUgu 67 + uAUaGc+cA+UGG AG+GCG +g CUg ca + AGGU uggGUUCGAUUCcc U+ + NC_013790.1 362022 CUAUAGCUCAAUGGCAGAGCGUUUGGCUGACAUCCAAAAGGUUAUGGGUUCGAUUCCCUUUAG 361960 + 689******************************************************988876 PP \end{sreoutput} First, note that the \otext{mdl} field reads \otext{hmm} instead of @@ -1652,10 +1654,11 @@ \subsection{Specifying and annotating match positions with cmbuild --hand} To build the hand-specified model from this alignment, do: \user{cmbuild --hand tRNA5-hand.cm tutorial/tRNA5-hand.sto} +%tutorial regression: trna-hand-build.out \begin{sreoutput} # cmbuild :: covariance model construction from multiple sequence alignments -# INFERNAL 1.1rc1 (June 2012) +# INFERNAL 1.1rc2 (November 2012) # Copyright (C) 2012 Howard Hughes Medical Institute. # Freely distributed under the GNU General Public License (GPLv3). # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/release-notes/RELEASE-1.1rc2 b/release-notes/RELEASE-1.1rc2 new file mode 100644 index 00000000..38e14389 --- /dev/null +++ b/release-notes/RELEASE-1.1rc2 @@ -0,0 +1,43 @@ +Infernal 1.1rc2 release notes: Infernal 1.1 release candidate 2 +http://infernal.janelia.org/ +EPN, Tue Nov 13 09:04:00 2012 +________________________________________________________________ + +This is the second release candidate (1.1rc2) for Infernal 1.1. In +general, Infernal 1.1rc1 (released about 5 months ago) is stable, but +1.1rc2 introduces some bug fixes as well as some other small +improvements, listed below: + +The following reported bugs have been fixed: + - #i28: cmsearch: fails in rare cases when the alignment matrix grows + too large + + - #i29: cmconvert: v1.0 files with 0 HMM filter threshold points were + incorrectly parsed + + - #i30: cmsearch: failed on zero length sequences + - #i31: cmsearch: E-values would turn negative for target databases + > 2 Gb on 32-bit systems + - #i32: cmbuild: --refine failed if individual sequences had SS + annotation + - #i33: cmsearch: -A failed on some CM files created by cmconvert of + v1.0 CM files. + +Other improvements: + - non-MPI cmsearch can now read gzipped target sequence fasta files. + - fixed problem with building Infernal on 32-bit Ubuntu machines. + - cmscan --glist option added to allow specific models (listed in + ) to be run in glocal search mode. + - cmcalibrate --memreq now more accurately predicts memory + requirements. + - 'make clean' and 'make distclean' now work properly. + - the user guide includes a section listing program options that have + changed between v1.0 and v1.1. + - several minor bug fixes to HMM filtering code in hmmer library. + - changed how cmalign orders local end ('~') and insert ('.') + columns relative to each other for rare models where a MATP + (basepair) node models two adjacent consensus positions. + - updated Easel miniapps esl-alimerge and esl-compalign to work more + cleanly with Infernal v1.1 output alignments. + - removed unimportant --with-gsl flag to configure. + From 9a6401597ebd7dc5b4d8cb3724a22d7759fc03c8 Mon Sep 17 00:00:00 2001 From: Eric Nawrocki Date: Fri, 16 Nov 2012 10:51:32 +0000 Subject: [PATCH 05/82] Fixed some typos and spacing in release notes. git-svn-id: https://svn.janelia.org/eddylab/eddys/src/infernal/branches/1.1@4306 db3e70e4-12e1-0310-b23f-81a6e3d09ba7 --- release-notes/RELEASE-1.1rc2 | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/release-notes/RELEASE-1.1rc2 b/release-notes/RELEASE-1.1rc2 index 38e14389..f7c593a0 100644 --- a/release-notes/RELEASE-1.1rc2 +++ b/release-notes/RELEASE-1.1rc2 @@ -10,18 +10,16 @@ improvements, listed below: The following reported bugs have been fixed: - #i28: cmsearch: fails in rare cases when the alignment matrix grows - too large - + too larg. - #i29: cmconvert: v1.0 files with 0 HMM filter threshold points were incorrectly parsed - - #i30: cmsearch: failed on zero length sequences - #i31: cmsearch: E-values would turn negative for target databases > 2 Gb on 32-bit systems - #i32: cmbuild: --refine failed if individual sequences had SS annotation - #i33: cmsearch: -A failed on some CM files created by cmconvert of - v1.0 CM files. + v1.0 CM files Other improvements: - non-MPI cmsearch can now read gzipped target sequence fasta files. From c6e90aa8d9e63dc1ad0581bbe83398ade73af51b Mon Sep 17 00:00:00 2001 From: Eric Nawrocki Date: Wed, 21 Nov 2012 17:11:01 +0000 Subject: [PATCH 06/82] Reinstated number of sequences per temporary alignment from 10 to 10,000. I had set this to 10 while testing changes in a previous revision since the 1.1rc1 release. This almost snuck into the 1.1rc2 release... git-svn-id: https://svn.janelia.org/eddylab/eddys/src/infernal/branches/1.1@4309 db3e70e4-12e1-0310-b23f-81a6e3d09ba7 --- src/cmalign.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/cmalign.c b/src/cmalign.c index cdcc5a61..2cd5a74e 100644 --- a/src/cmalign.c +++ b/src/cmalign.c @@ -51,8 +51,7 @@ * exceeds either of these, final output alignment will be in 1 * line/seq Pfam format. */ -//#define CMALIGN_MAX_NSEQ 10000 /* 10k sequences, average parsetree is 25 bytes/position this means ~250Mb for all parsetrees */ -#define CMALIGN_MAX_NSEQ 10 +#define CMALIGN_MAX_NSEQ 10000 /* 10k sequences, average parsetree is 25 bytes/position this means ~250Mb for all parsetrees */ #define CMALIGN_MAX_NRES 10000000 /* 10 Mb, average parsetree is 25 bytes/position this means ~250Mb for all parsetrees */ /* Max number of sequences, residues allowed if we're going to try and From fcb151807e84498d490afb4afee234b985d2bb22 Mon Sep 17 00:00:00 2001 From: Eric Nawrocki Date: Mon, 26 Nov 2012 14:49:55 +0000 Subject: [PATCH 07/82] Updated configure.ac based on recent revision 4310 to HMMER's configure.ac to use -msse2 and -msse3 when both are available, so that we build properly on FreeBSD. git-svn-id: https://svn.janelia.org/eddylab/eddys/src/infernal/branches/1.1@4313 db3e70e4-12e1-0310-b23f-81a6e3d09ba7 --- configure.ac | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index e21379e6..1f725269 100644 --- a/configure.ac +++ b/configure.ac @@ -401,7 +401,9 @@ ESL_PIC_FLAGS # If we're using SSE, figure out our @SIMD_CFLAGS@ if test "$impl_choice" = "sse" && test "x$SIMD_CFLAGS" = x; then case $ax_cv_c_compiler_vendor in - gnu) AX_CHECK_COMPILER_FLAGS(-msse2,[SIMD_CFLAGS="-msse2"],[AC_MSG_ERROR([Need -msse2 flag (gnu compiler, SSE implementation)])]);; + gnu) AX_CHECK_COMPILER_FLAGS([-msse2], [ SIMD_CFLAGS="-msse2" ]) + AX_CHECK_COMPILER_FLAGS([-msse2 -msse3], [ SIMD_CFLAGS="-msse2 -msse3" ]) + ;; intel) ;; *) ;; esac @@ -593,8 +595,16 @@ AC_SUBST(LIBGSL) # has files with @LIBGSL@ in them. # Checks for headers -# -AC_CHECK_HEADERS([sys/types.h sys/sysctl.h unistd.h stdint.h inttypes.h endian.h]) +# Defines HAVE_SYS_TYPES_H, HAVE_STDINT_H, etc. +AC_CHECK_HEADERS([ \ + endian.h\ + inttypes.h\ + stdint.h\ + unistd.h\ + sys/types.h\ + sys/sysctl.h\ + netinet/in.h +]) # altivec.h requires the simd cflags # For reasons I don't understand, this needs to come after any other CHECK_HEADERS(). From f176f03c1484101bd47454514ea07ba4aa205c0a Mon Sep 17 00:00:00 2001 From: Eric Nawrocki Date: Wed, 5 Dec 2012 19:03:59 +0000 Subject: [PATCH 08/82] Updated configure.ac so Infernal will build on OpenBSD. This commit is related to r4325 in hmmer's trunk and r829 in easel's trunk. git-svn-id: https://svn.janelia.org/eddylab/eddys/src/infernal/branches/1.1@4327 db3e70e4-12e1-0310-b23f-81a6e3d09ba7 --- configure.ac | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 1f725269..a1d3fe54 100644 --- a/configure.ac +++ b/configure.ac @@ -602,10 +602,33 @@ AC_CHECK_HEADERS([ \ stdint.h\ unistd.h\ sys/types.h\ - sys/sysctl.h\ netinet/in.h ]) +# Check for sysctl.h separately. On OpenBSD, it requires +# and autoconf needs special logic to deal w. this as +# follows. +AC_CHECK_HEADERS([sys/param.h]) +AC_CHECK_HEADERS([sys/sysctl.h], [], [], +[[#ifdef HAVE_SYS_PARAM_H +#include +#endif +]]) + + +# Vector-specific headers. +# Separated, because we may want to implement +# other vector languages besides SSE +# For SSE: +# xmmintrin.h = SSE +# emmintrin.h = SSE2 +# pmmintrin.h = SSE3 +AC_CHECK_HEADERS([\ + emmintrin.h\ + pmmintrin.h\ + xmmintrin.h +]) + # altivec.h requires the simd cflags # For reasons I don't understand, this needs to come after any other CHECK_HEADERS(). if test "$impl_choice" = "vmx"; then From 77717111b2c935266b16a8d2f010b551dc33c65d Mon Sep 17 00:00:00 2001 From: Eric Nawrocki Date: Mon, 10 Dec 2012 18:40:24 +0000 Subject: [PATCH 09/82] Updates for 1.1rc2 release. Changed 'November 2012' to 'December 2012' and added a note on fix to OpenBSD and FreeBSD builds to the release notes. git-svn-id: https://svn.janelia.org/eddylab/eddys/src/infernal/branches/1.1@4333 db3e70e4-12e1-0310-b23f-81a6e3d09ba7 --- Bugs/BUGTRAX | 3 +++ configure.ac | 6 +++--- documentation/userguide/tutorial.tex | 12 ++++++------ release-notes/RELEASE-1.1rc2 | 2 ++ 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/Bugs/BUGTRAX b/Bugs/BUGTRAX index ac578784..cba35ffd 100644 --- a/Bugs/BUGTRAX +++ b/Bugs/BUGTRAX @@ -980,3 +980,6 @@ executed. This bug was fixed in the Infernal 1.1 release branch as of revision 4274. // +#### +#### 1.1rc2 release: 11 December 2012 +#### diff --git a/configure.ac b/configure.ac index a1d3fe54..8c229a1d 100644 --- a/configure.ac +++ b/configure.ac @@ -73,7 +73,7 @@ fi # ################################################################ -INFERNAL_DATE="November 2012" +INFERNAL_DATE="December 2012" INFERNAL_COPYRIGHT="Copyright (C) 2012 Howard Hughes Medical Institute." INFERNAL_LICENSE="Freely distributed under the GNU General Public License (GPLv3)." INFERNAL_VERSION=$PACKAGE_VERSION @@ -82,7 +82,7 @@ INFERNAL_ESLDIR="easel" INFERNAL_HMMERDIR="hmmer" INFERNAL_SADIR="hmmer/libdivsufsort" -HMMER_DATE="November 2012" +HMMER_DATE="December 2012" HMMER_COPYRIGHT="Copyright (C) 2012 Howard Hughes Medical Institute." HMMER_LICENSE="Freely distributed under the GNU General Public License (GPLv3)." HMMER_VERSION=i$PACKAGE_VERSION @@ -90,7 +90,7 @@ HMMER_URL="http://hmmer.org/" HMMER_ESLDIR="../easel" HMMER_SADIR="libdivsufsort" -EASEL_DATE="November 2012" +EASEL_DATE="December 2012" EASEL_COPYRIGHT="Copyright (C) 2012 HHMI Janelia Farm Research Campus" EASEL_LICENSE="Freely distributed under the Janelia Software License." EASEL_VERSION="i$PACKAGE_VERSION" diff --git a/documentation/userguide/tutorial.tex b/documentation/userguide/tutorial.tex index 0442e90d..fa2df14d 100644 --- a/documentation/userguide/tutorial.tex +++ b/documentation/userguide/tutorial.tex @@ -199,7 +199,7 @@ \subsubsection{Step 1: build a covariance model with cmbuild} \begin{sreoutput} # cmbuild :: covariance model construction from multiple sequence alignments -# INFERNAL 1.1rc2 (November 2012) +# INFERNAL 1.1rc2 (December 2012) # Copyright (C) 2012 Howard Hughes Medical Institute. # Freely distributed under the GNU General Public License (GPLv3). # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -284,7 +284,7 @@ \subsubsection{Step 2: calibrate the model with cmcalibrate} \begin{sreoutput} # cmcalibrate :: fit exponential tails for CM E-values -# INFERNAL 1.1rc2 (November 2012) +# INFERNAL 1.1rc2 (December 2012) # Copyright (C) 2012 Howard Hughes Medical Institute. # Freely distributed under the GNU General Public License (GPLv3). # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -340,7 +340,7 @@ \subsubsection{Step 3: search a sequence database with cmsearch} \begin{sreoutput} # cmsearch :: search CM(s) against a sequence database -# INFERNAL 1.1rc2 (November 2012) +# INFERNAL 1.1rc2 (December 2012) # Copyright (C) 2012 Howard Hughes Medical Institute. # Freely distributed under the GNU General Public License (GPLv3). # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -945,7 +945,7 @@ \subsubsection{Step 3: search the CM database with cmscan} \begin{sreoutput} # cmscan :: search sequence(s) against a CM database -# INFERNAL 1.1rc2 (November 2012) +# INFERNAL 1.1rc2 (December 2012) # Copyright (C) 2012 Howard Hughes Medical Institute. # Freely distributed under the GNU General Public License (GPLv3). # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1396,7 +1396,7 @@ \subsection{Searching a sequence database for RNAs with unknown or no \begin{sreoutput} # cmbuild :: covariance model construction from multiple sequence alignments -# INFERNAL 1.1rc2 (November 2012) +# INFERNAL 1.1rc2 (December 2012) # Copyright (C) 2012 Howard Hughes Medical Institute. # Freely distributed under the GNU General Public License (GPLv3). # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1658,7 +1658,7 @@ \subsection{Specifying and annotating match positions with cmbuild --hand} \begin{sreoutput} # cmbuild :: covariance model construction from multiple sequence alignments -# INFERNAL 1.1rc2 (November 2012) +# INFERNAL 1.1rc2 (December 2012) # Copyright (C) 2012 Howard Hughes Medical Institute. # Freely distributed under the GNU General Public License (GPLv3). # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/release-notes/RELEASE-1.1rc2 b/release-notes/RELEASE-1.1rc2 index f7c593a0..0e210aec 100644 --- a/release-notes/RELEASE-1.1rc2 +++ b/release-notes/RELEASE-1.1rc2 @@ -23,6 +23,8 @@ The following reported bugs have been fixed: Other improvements: - non-MPI cmsearch can now read gzipped target sequence fasta files. + - fixed problems with building Infernal on 32-bit Ubuntu, FreeBSD and + OpenBSD operating systems. - fixed problem with building Infernal on 32-bit Ubuntu machines. - cmscan --glist option added to allow specific models (listed in ) to be run in glocal search mode. From a3e6794319a0abb90e73892582cac0b8acedb70e Mon Sep 17 00:00:00 2001 From: Eric Nawrocki Date: Mon, 10 Dec 2012 19:18:44 +0000 Subject: [PATCH 10/82] Fixed typo in release notes. git-svn-id: https://svn.janelia.org/eddylab/eddys/src/infernal/branches/1.1@4335 db3e70e4-12e1-0310-b23f-81a6e3d09ba7 --- release-notes/RELEASE-1.1rc2 | 1 - 1 file changed, 1 deletion(-) diff --git a/release-notes/RELEASE-1.1rc2 b/release-notes/RELEASE-1.1rc2 index 0e210aec..73879d2b 100644 --- a/release-notes/RELEASE-1.1rc2 +++ b/release-notes/RELEASE-1.1rc2 @@ -25,7 +25,6 @@ Other improvements: - non-MPI cmsearch can now read gzipped target sequence fasta files. - fixed problems with building Infernal on 32-bit Ubuntu, FreeBSD and OpenBSD operating systems. - - fixed problem with building Infernal on 32-bit Ubuntu machines. - cmscan --glist option added to allow specific models (listed in ) to be run in glocal search mode. - cmcalibrate --memreq now more accurately predicts memory From 06df128388c0d4da84d7c056abf588ae33d1dfac Mon Sep 17 00:00:00 2001 From: Eric Nawrocki Date: Wed, 12 Dec 2012 17:13:28 +0000 Subject: [PATCH 11/82] Fixing bug i34 in Infernal 1.1 branch. *Should* be final commit before 1.1rc2 release. This bug concerns the rare case (1 occurence in all Rfam 10.1 models) when a MATP node is immediately followed by an END node, which is the only way a IL and EL can emit after the same consensus position. As of a recent revision (r4272), I *thought* a new convention of always placing EL columns before (5') of insert columns in output alignments was 100% implemented, but I hadn't updated the insert rejustification code in cm_parsetree.c::Parsetrees2Alignment() to reflect this new convention. This revision fixes that oversight. Bug i34 in BUGTRAX explains this further, and bug-i34.pl in the testsuite tests for this bug. Also, cmalign.c has been slightly simplified by removing code meant to allow an upper limit of 100K seqs or 100M residues to be aligned in interleaved or non-Stockholm output alignments. This was having no effect, as esl_sqio_ReadBlock() enforces that only up to 1 megabyte (1024*1024 residues) of sequence can be read in a block, so that was the actual upper limit. The code now reflects this. (I considered changing the Easel function to allow a caller-defined max number of residues, but I'm trying to make the minimal amount of changes immediately prior the Infernal 1.1rc2 release, lest I break something and don't notice it until post-release.) git-svn-id: https://svn.janelia.org/eddylab/eddys/src/infernal/branches/1.1@4336 db3e70e4-12e1-0310-b23f-81a6e3d09ba7 --- Bugs/BUGTRAX | 26 ++- src/cm_parsetree.c | 55 ++++--- src/cmalign.c | 80 +++------ testsuite/bug-i34.cm | 386 ++++++++++++++++++++++++++++++++++++++++++++ testsuite/bug-i34.pl | 63 ++++++++ testsuite/dev_testsuite.sqc | 1 + testsuite/testsuite.sqc | 1 + 7 files changed, 532 insertions(+), 80 deletions(-) create mode 100644 testsuite/bug-i34.cm create mode 100644 testsuite/bug-i34.pl diff --git a/Bugs/BUGTRAX b/Bugs/BUGTRAX index cba35ffd..23e4c442 100644 --- a/Bugs/BUGTRAX +++ b/Bugs/BUGTRAX @@ -980,6 +980,30 @@ executed. This bug was fixed in the Infernal 1.1 release branch as of revision 4274. // +// +ID i34 +TITLE cmalign improperly arranging EL and IL emits for MATP->END adjacent nodes +STATUS CLOSED +XREF Notes in ~nawrockie/notebook/12_1112_inf_release_1p1rc2/00LOG +REPORTED_BY Eric Nawrocki +CLOSED_DATE EPN, Wed Dec 12 09:49:14 2012 +DESCRIPTION + +cm_parsetree.c::Parsetrees2Alignment() was not enforcing the new rule +(instituted after the 1.1rc1 release) that EL emissions always come 5' +of IL emissions, which only very rarely occurs (1 model in all of Rfam +10.1) when a MATP node is followed by an END node. The bug was in the +section of Parsetrees2Alignment() that rejustifies the insertions by +splitting them in half and shoving each half left/right. + +This bug was never in a released version of the software, it was +created (rev 4272) and fixed in between releases 1.1rc1 and +1.1rc2. + +This bug was fixed in the Infernal 1.1 release branch as of revision +4336. +// + #### -#### 1.1rc2 release: 11 December 2012 +#### 1.1rc2 release: 13 December 2012 #### diff --git a/src/cm_parsetree.c b/src/cm_parsetree.c index b5b574ef..89dca25a 100644 --- a/src/cm_parsetree.c +++ b/src/cm_parsetree.c @@ -834,7 +834,7 @@ Parsetrees2Alignment(CM_t *cm, char *errbuf, const ESL_ALPHABET *abc, ESL_SQ **s * and rightflushed. * * EPN, Mon Oct 22 09:40:15 2012 - * Post-1.1rc1: always put EL insertions *before* (5') of ILs or + * Post-1.1rc1: always put EL insertions *before* (5' of) ILs or * IRs. Previous to this modification ELs were 5' or IRs, but 3' of * ILs. Since ELs only occur at the end of stem loops, IRs nearly * always accounted for inserts at the same position as an EL @@ -1079,58 +1079,67 @@ Parsetrees2Alignment(CM_t *cm, char *errbuf, const ESL_ALPHABET *abc, ESL_SQ **s * * We have to be careful about EL's. We don't want to group IL/IR's and EL's together and then split them * because we need to annotate IL/IR's as '.'s in the consensus structure and EL's as '~'. So we split - * each group separately. There should only be either IL or IR's at any position (b/c assuming we've - * detached the CM grammar ambiguity (which is default in cmbuild)). But we don't count on it here. + * each group separately. + * post-1.1rc1 release, we now always but EL insertions *before* (5' of) ILs or IRs. This is a change + * relative to 1.0->1.1rc1, in which ILs would come 3' of ELs (although this would only very rarely + * occur in the case of a MATP followed by an END (that's the only case where an IL and EL can emit + * after the same cpos)). */ if(! (cm->align_opts & CM_ALIGN_FLUSHINSERTS)) /* default behavior, split insert in half */ { - /* Deal with inserts before first consensus position, ILs, then ELs, then IRs - * IL's are flush left, we want flush right */ - rightjustify(abc, msa->aseq[i], maxil[0]); - if(do_cur_post) rightjustify(abc, msa->pp[i], maxil[0]); + /* Deal with inserts before first consensus position, ELs, then ILs, then IRs + * (new convention post-1.1rc1 see note above, used to be ILs then ELs then IRs) + */ + + /* EL's are flush left, we want flush right (I think these are impossible, but just in case...) */ + rightjustify(abc, msa->aseq[i], maxel[0]); + if(do_cur_post) rightjustify(abc, msa->pp[i], maxel[0]); + + /* IL's are flush left, we want flush right */ + rightjustify(abc, msa->aseq[i]+maxel[0], maxil[0]); + if(do_cur_post) rightjustify(abc, msa->pp[i]+maxel[0], maxil[0]); - /* EL's are flush left, we want flush right I think these are impossible, but just in case... */ - rightjustify(abc, msa->aseq[i]+maxil[0], maxel[0]); - if(do_cur_post) rightjustify(abc, msa->pp[i]+maxil[0], maxel[0]); /* IR's are flush right, we want flush right, do nothing */ /* split all internal insertions */ for (cpos = 1; cpos < emap->clen; cpos++) { - if(maxil[cpos] > 1) /* we're flush LEFT, want to split */ + if(maxel[cpos] > 1) /* we're flush LEFT, want to split */ { apos = matmap[cpos]+1; for (nins = 0; islower((int) (msa->aseq[i][apos])); apos++) nins++; nins /= 2; /* split the insertion in half */ - rightjustify(abc, msa->aseq[i]+matmap[cpos]+1+nins, maxil[cpos]-nins); - if(do_cur_post) rightjustify(abc, msa->pp[i]+matmap[cpos]+1+nins, maxil[cpos]-nins); + rightjustify(abc, msa->aseq[i]+matmap[cpos]+1+nins, maxel[cpos]-nins); + if(do_cur_post) rightjustify(abc, msa->pp[i]+matmap[cpos]+1+nins, maxel[cpos]-nins); } - if(maxel[cpos] > 1) /* we're flush LEFT, want to split */ + + if(maxil[cpos] > 1) /* we're flush LEFT, want to split */ { - apos = matmap[cpos]+1 + maxil[cpos]; + apos = matmap[cpos]+1 + maxel[cpos]; for (nins = 0; islower((int) (msa->aseq[i][apos])); apos++) nins++; nins /= 2; /* split the insertion in half */ - rightjustify(abc, msa->aseq[i]+matmap[cpos]+1+maxil[cpos]+nins, maxel[cpos]-nins); - if(do_cur_post) rightjustify(abc, msa->pp[i]+matmap[cpos]+1+maxil[cpos]+nins, maxel[cpos]-nins); + rightjustify(abc, msa->aseq[i]+matmap[cpos]+1+maxel[cpos]+nins, maxil[cpos]-nins); + if(do_cur_post) rightjustify(abc, msa->pp[i]+matmap[cpos]+1+maxel[cpos]+nins, maxil[cpos]-nins); } + if(maxir[cpos] > 1) /* we're flush RIGHT, want to split */ { apos = matmap[cpos+1]-1; for (nins = 0; islower((int) (msa->aseq[i][apos])); apos--) nins++; nins ++; nins /= 2; /* split the insertion in half (++ makes it same behavior as IL/EL */ - leftjustify(abc, msa->aseq[i]+matmap[cpos]+1 + maxil[cpos] + maxel[cpos], maxir[cpos]-nins); - if(do_cur_post) leftjustify(abc, msa->pp[i]+matmap[cpos]+1 + maxil[cpos] + maxel[cpos], maxir[cpos]-nins); + leftjustify(abc, msa->aseq[i]+matmap[cpos]+1 + maxel[cpos] + maxil[cpos], maxir[cpos]-nins); + if(do_cur_post) leftjustify(abc, msa->pp[i]+matmap[cpos]+1 + maxel[cpos] + maxil[cpos], maxir[cpos]-nins); } } /* Deal with inserts after final consensus position, IL's then EL's, then IR's - * IL's are flush left, we want flush left, do nothing * EL's are flush left, we want flush left, do nothing + * IL's are flush left, we want flush left, do nothing * IR's are flush right, we want flush left */ - leftjustify(abc, msa->aseq[i]+matmap[emap->clen]+1 + maxil[emap->clen] + maxel[emap->clen], maxir[emap->clen]); - if(do_cur_post) leftjustify(abc, msa->pp[i]+matmap[emap->clen]+1 + maxil[emap->clen] + maxel[emap->clen], maxir[emap->clen]); + leftjustify(abc, msa->aseq[i]+matmap[emap->clen]+1 + maxel[emap->clen] + maxil[emap->clen], maxir[emap->clen]); + if(do_cur_post) leftjustify(abc, msa->pp[i]+matmap[emap->clen]+1 + maxel[emap->clen] + maxil[emap->clen], maxir[emap->clen]); } } @@ -1142,7 +1151,7 @@ Parsetrees2Alignment(CM_t *cm, char *errbuf, const ESL_ALPHABET *abc, ESL_SQ **s { if((insertfp != NULL) && ((iluse[cpos] + iruse[cpos]) > 0)) { fprintf(insertfp, " %d %d %d", cpos, ifirst[cpos], (iluse[cpos] + iruse[cpos])); /* note cpos+1 puts cpos from 1..clen, ifirst[] is already 1..sq->n */ - /* Note: only 1 of iluse[cpos] or iruse[cpos] should be != 0 (I think) */ + /* Note: only 1 of iluse[cpos] or iruse[cpos] should be != 0 */ } if((elfp != NULL) && (eluse[cpos] > 0)) { fprintf(elfp, " %d %d %d", cpos, elfirst[cpos], eluse[cpos]); /* note cpos+1 puts cpos from 1..clen, ifirst[] is already 1..sq->n */ diff --git a/src/cmalign.c b/src/cmalign.c index 2cd5a74e..9329b89a 100644 --- a/src/cmalign.c +++ b/src/cmalign.c @@ -47,20 +47,12 @@ #include "infernal.h" -/* Max number of sequences, residues per tmp alignment, if seq file - * exceeds either of these, final output alignment will be in 1 - * line/seq Pfam format. +/* Max number of sequences per tmp alignment, if seq file exceeds + * either of these, final output alignment will be in 1 line/seq Pfam + * format. Max number of residues is MAX_RESIDUE_COUNT from esl_sqio_ncbi.h + * where it's currently defined as (1024 * 1024). */ -#define CMALIGN_MAX_NSEQ 10000 /* 10k sequences, average parsetree is 25 bytes/position this means ~250Mb for all parsetrees */ -#define CMALIGN_MAX_NRES 10000000 /* 10 Mb, average parsetree is 25 bytes/position this means ~250Mb for all parsetrees */ - -/* Max number of sequences, residues allowed if we're going to try and - * output the entire alignment in one block. If seq file exceeds - * either of these and --ileaved enabled, we'll output an error and - * tell user file is to big to use --ileaved. - */ -#define CMALIGN_MAX_NSEQ_ONEBLOCK 100000 /* 100k sequences, most we allow to be aligned and output in interleaved format */ -#define CMALIGN_MAX_NRES_ONEBLOCK 100000000 /* 100Mb, most we allow to be aligned and output in interleaved format */ +#define CMALIGN_MAX_NSEQ 10000 /* 10k sequences, average parsetree is 25 bytes/position this means ~250Mb for all parsetrees */ #define DEBUGSERIAL 0 #define DEBUGMPI 0 @@ -153,7 +145,7 @@ struct cfg_s { int outfmt; /* output alignment format */ int be_verbose; /* TRUE if --verbose used */ int do_oneblock; /* TRUE to force output of full alignment - * in one block, if input file is really big. + * in one block, if input file is really big, * we'll fail and tell the user to pick a * different format. */ @@ -370,8 +362,6 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg) int sstatus = eslOK; /* status from esl_sq_ReadBlock() */ ESL_SQ_BLOCK *sq_block; /* a sequence block */ ESL_SQ_BLOCK *nxt_sq_block; /* sequence block for next loop iteration */ - int block_max_nres; /* maximum number of residues we'll allow in sq_block */ - int block_max_nseq; /* maximum number of sequences we'll allow in sq_block */ int reached_eof; /* TRUE if we've reached EOF in target sequence file */ /* variables related to --mapali */ @@ -488,25 +478,15 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg) } /* Our main loop will loop over reading a single large block - * () of sequences, up to residues and up - * to sequences, but potentially less if we reach - * the end of the sequence file first. The values - * depend on whether we're trying to output the alignment in - * one block (cfg->do_oneblock) or not. All max values are - * #defined at the top of the file. + * () of sequences, up to MAX_RESIDUE_COUNT + * (1024*1024=1048576) residues, and up to CMALIGN_MAX_NSEQ + * sequences (10,000), but potentially less if we reach the end of + * the sequence file first. */ - if(cfg->do_oneblock) { - block_max_nseq = CMALIGN_MAX_NSEQ_ONEBLOCK; /* 100,000 */ - block_max_nres = CMALIGN_MAX_NRES_ONEBLOCK; /* 100 Mb */ - } - else { - block_max_nseq = CMALIGN_MAX_NSEQ; /* 10,000 */ - block_max_nres = CMALIGN_MAX_NRES; /* 10 Mb */ - } /* Read the first block */ - sq_block = esl_sq_CreateDigitalBlock(block_max_nseq, cfg->abc); - sstatus = esl_sqio_ReadBlock(cfg->sqfp, sq_block, block_max_nres, FALSE); /* FALSE says: read complete sequences */ + sq_block = esl_sq_CreateDigitalBlock(CMALIGN_MAX_NSEQ, cfg->abc); + sstatus = esl_sqio_ReadBlock(cfg->sqfp, sq_block, -1, FALSE); /* FALSE says: read complete sequences */ nxt_sq_block = sq_block; /* special case of first block read */ while(sstatus == eslOK) { @@ -535,13 +515,13 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg) * user isn't cross when the job fails after seemingly going along * fine for a while. */ - nxt_sq_block = esl_sq_CreateDigitalBlock(block_max_nseq, cfg->abc); - sstatus = esl_sqio_ReadBlock(cfg->sqfp, nxt_sq_block, block_max_nres, FALSE); /* FALSE says: read complete sequences */ + nxt_sq_block = esl_sq_CreateDigitalBlock(CMALIGN_MAX_NSEQ, cfg->abc); + sstatus = esl_sqio_ReadBlock(cfg->sqfp, nxt_sq_block, -1, FALSE); /* FALSE says: read complete sequences */ if(sstatus == eslEOF) { reached_eof = TRUE; /* nxt_sq_block will not have been filled */ esl_sq_DestroyBlock(nxt_sq_block); } - if(! reached_eof && cfg->do_oneblock) esl_fatal("Error: the sequence file is too big (has > %d seqs or %d residues) for -i or output format other than Pfam", CMALIGN_MAX_NSEQ_ONEBLOCK, CMALIGN_MAX_NRES_ONEBLOCK); + if((! reached_eof) && cfg->do_oneblock) esl_fatal("Error: the sequence file is too big (has > %d seqs or %d residues) for --ileaved or output\nformat other than Pfam. Use esl-reformat to reformat alignment later.", CMALIGN_MAX_NSEQ, MAX_RESIDUE_COUNT); /* align the sequences in the block */ #ifdef HMMER_THREADS @@ -936,8 +916,6 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg) int sstatus = eslOK; /* status from esl_sq_ReadBlock() */ ESL_SQ_BLOCK *sq_block; /* a sequence block */ ESL_SQ_BLOCK *nxt_sq_block; /* sequence block for next loop iteration */ - int block_max_nres; /* maximum number of residues we'll allow in sq_block */ - int block_max_nseq; /* maximum number of sequences we'll allow in sq_block */ int reached_eof; /* TRUE if we've reached EOF in target sequence file */ /* variables related to --mapali */ @@ -988,25 +966,15 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg) } /* Our main loop will loop over reading a single large block - * () of sequences, up to residues and up - * to sequences, but potentially less if we reach - * the end of the sequence file first. The values - * depend on whether we're trying to output the alignment in - * one block (cfg->do_oneblock) or not. All max values are - * #defined at the top of the file. + * () of sequences, up to MAX_RESIDUE_COUNT + * (1024*1024=1048576) residues, and up to CMALIGN_MAX_NSEQ + * sequences (10,000), but potentially less if we reach the end of + * the sequence file first. */ - if(cfg->do_oneblock) { - block_max_nseq = CMALIGN_MAX_NSEQ_ONEBLOCK; /* 100,000 */ - block_max_nres = CMALIGN_MAX_NRES_ONEBLOCK; /* 100 Mb */ - } - else { - block_max_nseq = CMALIGN_MAX_NSEQ; /* 10,000 */ - block_max_nres = CMALIGN_MAX_NRES; /* 10 Mb */ - } /* Read the first block */ - sq_block = esl_sq_CreateDigitalBlock(block_max_nseq, cfg->abc); - sstatus = esl_sqio_ReadBlock(cfg->sqfp, sq_block, block_max_nres, FALSE); /* FALSE says: read complete sequences */ + sq_block = esl_sq_CreateDigitalBlock(CMALIGN_MAX_NSEQ, cfg->abc); + sstatus = esl_sqio_ReadBlock(cfg->sqfp, sq_block, -1, FALSE); /* FALSE says: read complete sequences */ nxt_sq_block = sq_block; /* special case of first block read */ #if DEBUGMPI @@ -1034,13 +1002,13 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg) * user isn't cross when the job fails after seemingly going along * fine for a while. */ - nxt_sq_block = esl_sq_CreateDigitalBlock(block_max_nseq, cfg->abc); - sstatus = esl_sqio_ReadBlock(cfg->sqfp, nxt_sq_block, block_max_nres, FALSE); /* FALSE says: read complete sequences */ + nxt_sq_block = esl_sq_CreateDigitalBlock(CMALIGN_MAX_NSEQ, cfg->abc); + sstatus = esl_sqio_ReadBlock(cfg->sqfp, nxt_sq_block, -1, FALSE); /* FALSE says: read complete sequences */ if(sstatus == eslEOF) { reached_eof = TRUE; /* nxt_sq_block will not have been filled */ esl_sq_DestroyBlock(nxt_sq_block); } - if(! reached_eof && cfg->do_oneblock) esl_fatal("Error: the sequence file is too big (has > %d seqs or %d residues) for -i or output format other than Pfam", CMALIGN_MAX_NSEQ_ONEBLOCK, CMALIGN_MAX_NRES_ONEBLOCK); + if((! reached_eof) && cfg->do_oneblock) esl_fatal("Error: the sequence file is too big (has > %d seqs or %d residues) for --ileaved or\noutput format other than Pfam. Use esl-reformat to reformat alignment later.", CMALIGN_MAX_NSEQ, MAX_RESIDUE_COUNT); /* allocate an array for all CM_ALNDATA objects we'll receive from workers */ nmap_cur = (nali == 0) ? nmap_data : 0; diff --git a/testsuite/bug-i34.cm b/testsuite/bug-i34.cm new file mode 100644 index 00000000..4d9600da --- /dev/null +++ b/testsuite/bug-i34.cm @@ -0,0 +1,386 @@ +INFERNAL1/a [1.1 | June 2012] +NAME Hammerhead_1 +ACC RF00163 +DESC Hammerhead ribozyme (type I) +STATES 147 +NODES 38 +CLEN 46 +W 955 +ALPH RNA +RF no +CONS yes +MAP yes +DATE Wed Jun 13 14:38:02 2012 +COM [1] ../wd-infernal/src/cmbuild --informat stockholm Hammerhead_1.cm - +COM [2] ../wd-infernal/src/cmcalibrate --mpi Hammerhead_1.cm +PBEGIN 0.05 +PEND 0.05 +WBETA 1e-07 +QDBBETA1 1e-07 +QDBBETA2 1e-15 +N2OMEGA 1.52588e-05 +N3OMEGA 1.52588e-05 +ELSELF -0.08926734 +NSEQ 30 +EFFN 30.000000 +CKSUM 408657105 +NULL 0.000 0.000 0.000 0.000 +GA 26.00 +TC 26.00 +NC 25.99 +EFP7GF -14.5128 0.72420 +ECMLC 0.71924 -3.65335 4.13700 1600000 325528 0.003686 +ECMGC 0.37368 -20.78675 -5.90440 1600000 104064 0.003844 +ECMLI 0.72523 -2.43993 5.08993 1600000 282356 0.004250 +ECMGI 0.40197 -17.30989 -4.26587 1600000 75719 0.005283 +CM + [ ROOT 0 ] - - - - - - + S 0 -1 0 1 6 0 1 955 2056 -11.123 -11.062 -0.005 -9.838 -10.118 -10.513 + IL 1 1 2 1 6 2 17 957 2058 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 2 2 3 2 5 2 18 957 2058 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 1 ] 1 124 c g - - + MP 3 2 3 7 6 4 23 957 2057 -11.123 -11.062 -0.005 -9.838 -10.118 -10.513 -4.727 -4.568 -4.819 2.480 -4.263 -0.619 2.662 -2.243 -4.805 0.390 -5.334 -0.931 -0.324 -4.974 -1.950 -3.733 + ML 4 2 3 7 6 1 16 954 2055 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 5 2 3 7 6 1 16 954 2054 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094 + D 6 2 3 7 6 0 13 948 2049 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319 + IL 7 7 5 7 6 1 17 955 2056 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 8 8 6 8 5 2 17 955 2056 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 2 ] 2 123 U A - - + MP 9 8 6 13 6 4 22 955 2055 -11.123 -11.062 -0.005 -9.838 -10.118 -10.513 -7.739 -7.920 -1.447 -4.167 0.461 -7.364 -1.292 -6.473 -1.186 -4.136 -1.212 -6.164 3.667 -7.645 -3.286 -6.057 + ML 10 8 6 13 6 1 16 952 2053 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 11 8 6 13 6 1 16 952 2053 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094 + D 12 8 6 13 6 0 12 947 2048 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319 + IL 13 13 5 13 6 1 17 954 2054 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 14 14 6 14 5 1 17 953 2054 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 3 ] 3 122 u a - - + MP 15 14 6 19 6 4 21 953 2053 -11.123 -11.062 -0.065 -9.838 -4.598 -10.513 -5.030 -4.946 -5.095 0.814 -4.286 -0.267 2.243 -1.361 -5.041 -0.961 -5.562 -2.837 2.630 -5.271 0.213 -3.923 + ML 16 14 6 19 6 1 16 950 2051 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 17 14 6 19 6 1 16 950 2051 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094 + D 18 14 6 19 6 0 12 946 2047 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319 + IL 19 19 5 19 6 1 17 952 2052 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 20 20 6 20 5 1 17 952 2052 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 4 ] 4 121 u a - - + MP 21 20 6 25 6 4 20 951 2051 -11.063 -11.002 -0.005 -9.779 -10.059 -10.454 -6.619 -6.496 -6.391 -2.444 -0.873 -6.911 2.476 -5.827 -6.352 -2.251 -6.711 -4.249 2.874 -6.698 0.532 -0.792 + ML 22 20 6 25 6 1 16 949 2049 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 23 20 6 25 6 1 16 949 2050 -8.517 -7.246 -0.385 -7.224 -2.358 -5.437 -1.216 -2.375 1.624 -1.760 + D 24 20 6 25 6 0 12 945 2045 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319 + IL 25 25 5 25 6 1 16 950 2050 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 26 26 6 26 5 1 17 950 2050 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 5 ] 5 120 c g - - + MP 27 26 6 31 6 4 18 949 2049 -11.123 -11.062 -0.005 -9.838 -10.118 -10.513 -1.203 -2.447 -2.941 2.152 -2.918 -2.982 2.458 -1.630 -3.006 -0.151 -3.579 -1.105 1.092 -2.535 -1.168 -1.289 + ML 28 26 6 31 6 1 15 947 2048 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 29 26 6 31 6 1 14 946 2047 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094 + D 30 26 6 31 6 0 12 944 2045 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319 + IL 31 31 5 31 6 1 16 948 2049 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 32 32 6 32 5 1 16 948 2048 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 6 ] 6 119 c g - - + MP 33 32 6 37 4 2 16 947 2047 -10.113 -3.230 -0.202 -5.412 -3.553 0.166 -3.689 0.328 -3.754 -4.496 2.474 -4.052 -1.783 2.266 -1.877 -0.917 -0.046 -1.204 -1.813 -2.878 + ML 34 32 6 37 4 1 14 946 2046 -3.758 -3.940 -0.507 -2.670 0.368 -0.385 -0.191 0.094 + MR 35 32 6 37 4 1 13 945 2045 -4.809 -3.838 -1.706 -0.766 0.368 -0.385 -0.191 0.094 + D 36 32 6 37 4 0 11 944 2044 -4.568 -4.250 -2.265 -0.520 + IL 37 37 5 37 4 1 15 947 2047 -1.686 -2.369 -1.117 -4.855 0.000 0.000 0.000 0.000 + IR 38 38 6 38 3 2 16 947 2048 -0.678 -1.445 -6.977 0.000 0.000 0.000 0.000 + [ MATL 7 ] 7 - C - - - + ML 39 38 6 41 3 2 15 944 2045 -11.004 -0.002 -9.658 -1.326 1.770 -5.176 -2.612 + D 40 38 6 41 3 0 11 943 2044 -7.568 -0.439 -1.960 + IL 41 41 3 41 3 1 14 945 2046 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 8 ] 8 - U - - - + ML 42 41 3 44 3 2 14 943 2044 -11.035 -0.002 -9.689 -1.640 -1.909 -4.640 1.754 + D 43 41 3 44 3 0 9 941 2041 -6.174 -1.687 -0.566 + IL 44 44 3 44 3 1 13 944 2045 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 9 ] 9 - G - - - + ML 45 44 3 47 3 1 13 942 2043 -11.035 -0.002 -9.689 -5.729 -7.458 1.987 -6.482 + D 46 44 3 47 3 0 9 940 2041 -6.174 -1.687 -0.566 + IL 47 47 3 47 3 1 12 943 2044 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 10 ] 10 - A - - - + ML 48 47 3 50 3 1 12 941 2042 -11.035 -0.002 -9.689 1.951 -5.777 -5.711 -3.358 + D 49 47 3 50 3 0 8 939 2040 -6.174 -1.687 -0.566 + IL 50 50 3 50 3 1 11 942 2043 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 11 ] 11 - a - - - + ML 51 50 3 53 3 1 11 940 2041 -11.035 -0.002 -9.689 0.858 0.491 -1.173 -1.560 + D 52 50 3 53 3 0 8 938 2039 -6.174 -1.687 -0.566 + IL 53 53 3 53 3 1 11 941 2042 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 12 ] 12 - G - - - + ML 54 53 3 56 3 1 10 939 2040 -11.035 -0.002 -9.689 -3.099 -3.721 1.918 -5.074 + D 55 53 3 56 3 0 7 938 2038 -6.174 -1.687 -0.566 + IL 56 56 3 56 3 1 10 940 2041 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 13 ] 13 - A - - - + ML 57 56 3 59 3 1 9 938 2039 -11.340 -0.002 -9.658 1.819 -3.679 -3.902 -1.612 + D 58 56 3 59 3 0 7 937 2038 -5.620 -0.734 -1.403 + IL 59 59 3 59 3 1 9 939 2039 -1.925 -0.554 -4.164 0.000 0.000 0.000 0.000 + [ MATR 14 ] - 115 - C - - + MR 60 59 3 62 2 1 8 937 2038 -11.662 -0.000 -5.049 1.889 -2.908 -2.906 + D 61 59 3 62 2 0 7 937 2037 -4.432 -0.068 + IR 62 62 3 62 2 1 8 938 2039 -1.823 -0.479 0.000 0.000 0.000 0.000 + [ BIF 15 ] - - - - - - + B 63 62 3 64 111 0 7 936 2037 + [ BEGL 16 ] - - - - - - + S 64 63 1 65 4 0 0 925 2026 -0.009 -9.163 -8.570 -9.210 + [ MATP 17 ] 14 99 G C - - + MP 65 64 1 69 6 2 2 925 2026 -11.123 -11.062 -0.005 -9.838 -10.118 -10.513 -8.730 -1.363 -10.069 -3.006 -10.341 -6.890 -4.819 -10.004 -7.017 3.845 -0.494 -1.683 -5.151 -7.293 -7.180 -8.955 + ML 66 64 1 69 6 1 1 922 2023 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 67 64 1 69 6 1 1 921 2022 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094 + D 68 64 1 69 6 0 0 916 2017 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319 + IL 69 69 5 69 6 1 1 924 2024 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 70 70 6 70 5 1 1 924 2024 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 18 ] 15 98 U A - - + MP 71 70 6 75 6 2 2 923 2024 -11.123 -11.062 -0.005 -9.838 -10.118 -10.513 -7.659 -7.350 -7.184 2.732 -5.770 -7.559 -1.456 -6.554 -7.183 -3.685 -7.418 -5.078 3.003 -7.765 -0.354 -6.024 + ML 72 70 6 75 6 1 1 920 2021 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 73 70 6 75 6 1 1 919 2020 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094 + D 74 70 6 75 6 0 0 915 2015 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319 + IL 75 75 5 75 6 1 1 922 2023 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 76 76 6 76 5 1 1 922 2022 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 19 ] 16 97 C G - - + MP 77 76 6 81 6 2 2 921 2022 -11.123 -11.062 -0.005 -9.838 -10.118 -10.513 -7.927 -8.195 -7.255 -4.419 0.241 -7.405 3.710 -6.523 -7.355 -4.383 -0.565 -6.568 -2.331 -7.767 -0.528 -6.156 + ML 78 76 6 81 6 1 1 919 2019 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 79 76 6 81 6 1 1 917 2018 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094 + D 80 76 6 81 6 0 0 914 2014 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319 + IL 81 81 5 81 6 1 1 920 2021 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 82 82 6 82 5 1 1 920 2020 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 20 ] 17 96 c g - - + MP 83 82 6 87 4 2 2 919 2020 -10.113 -10.320 -0.046 -5.077 -7.914 -8.176 -7.248 -4.396 -1.589 -7.402 2.950 -6.518 2.718 -4.357 -1.877 -6.536 -2.323 -7.758 -0.452 -6.147 + ML 84 82 6 87 4 1 1 917 2018 -3.758 -3.940 -0.507 -2.670 0.368 -0.385 -0.191 0.094 + MR 85 82 6 87 4 1 1 914 2015 -4.809 -3.838 -1.706 -0.766 0.368 -0.385 -0.191 0.094 + D 86 82 6 87 4 0 0 913 2013 -4.568 -4.250 -2.265 -0.520 + IL 87 87 5 87 4 1 1 919 2019 -1.686 -2.369 -1.117 -4.855 0.000 0.000 0.000 0.000 + IR 88 88 6 88 3 1 1 918 2019 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 21 ] 18 - c - - - + ML 89 88 6 91 3 1 1 917 2018 -10.995 -0.003 -9.649 0.791 0.808 -2.781 -1.421 + D 90 88 6 91 3 0 0 910 2011 -7.807 -0.363 -2.199 + IL 91 91 3 91 3 1 1 915 2016 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 22 ] 19 - A - - - + ML 92 91 3 94 3 1 1 916 2017 -11.035 -0.822 -1.205 1.846 -2.969 -2.131 -4.376 + D 93 91 3 94 3 0 0 882 1983 -6.174 -1.687 -0.566 + IL 94 94 3 94 3 1 1 945 2046 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 23 ] 20 - G - - - + ML 95 94 3 97 3 1 1 949 2050 -0.468 -1.862 -8.871 -2.355 -1.522 1.596 -1.204 + D 96 94 3 97 3 0 0 500 1601 -11.287 -0.029 -5.679 + IL 97 97 3 97 3 1 1 968 2068 -0.024 -5.923 -13.163 0.000 0.000 0.000 0.000 + [ MATL 24 ] 92 - A - - - + ML 98 97 3 100 3 1 1 14 32 -11.035 -0.002 -9.689 1.128 0.622 -2.453 -3.440 + D 99 97 3 100 3 0 0 16 34 -6.174 -1.687 -0.566 + IL 100 100 3 100 3 1 1 20 38 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 25 ] 93 - A - - - + ML 101 100 3 103 3 1 1 13 31 -11.035 -0.002 -9.689 1.938 -3.098 -5.358 -5.158 + D 102 100 3 103 3 0 0 15 33 -6.174 -1.687 -0.566 + IL 103 103 3 103 3 1 1 19 37 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 26 ] 94 - U - - - + ML 104 103 3 106 3 1 1 11 29 -11.035 -0.002 -9.689 -4.517 0.939 -5.553 1.013 + D 105 103 3 106 3 0 0 13 32 -6.174 -1.687 -0.566 + IL 106 106 3 106 3 1 1 18 36 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 27 ] 95 - A - - - + ML 107 106 3 109 2 1 1 1 1 * 0.000 1.879 -4.664 -2.602 -3.095 + D 108 106 3 109 2 0 0 0 0 * 0.000 + IL 109 109 3 109 2 1 1 13 28 -1.823 -0.479 0.000 0.000 0.000 0.000 + [ END 28 ] - - - - - - + E 110 109 3 -1 0 0 0 0 0 + [ BEGR 29 ] - - - - - - + S 111 63 1 112 3 0 0 33 64 -11.035 -0.002 -9.689 + IL 112 112 2 112 3 1 1 35 66 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 30 ] 100 - G - - - + ML 113 112 2 115 3 1 1 33 64 -11.035 -0.002 -9.689 -5.044 -6.334 1.884 -1.912 + D 114 112 2 115 3 0 0 32 62 -6.174 -1.687 -0.566 + IL 115 115 3 115 3 1 1 34 65 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 31 ] 101 - A - - - + ML 116 115 3 118 3 1 1 32 63 -11.035 -0.019 -6.277 1.914 -4.921 -3.257 -3.415 + D 117 115 3 118 3 0 0 30 61 -6.174 -1.687 -0.566 + IL 118 118 3 118 3 1 1 33 64 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 32 ] 102 - A - - - + ML 119 118 3 121 5 1 1 32 62 -4.381 -0.075 -9.791 -10.003 -10.895 1.901 -4.737 -3.271 -3.018 + D 120 118 3 121 5 0 0 29 59 -5.555 -0.479 -4.816 -3.191 -3.104 + IL 121 121 3 121 5 1 1 36 66 -0.877 -1.220 -6.057 -7.889 -7.163 0.000 0.000 0.000 0.000 + [ MATP 33 ] 106 114 A U - - + MP 122 121 3 126 6 2 2 16 27 -11.123 -11.062 -0.005 -9.838 -10.118 -10.513 -7.533 -6.223 -6.530 3.941 -9.701 -10.689 -5.321 -6.440 -7.303 -2.882 -7.952 -1.425 -5.269 -8.981 -7.126 -5.774 + ML 123 121 3 126 6 1 1 16 28 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 124 121 3 126 6 1 1 16 28 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094 + D 125 121 3 126 6 0 0 14 26 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319 + IL 126 126 5 126 6 1 1 18 29 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 127 127 6 127 5 1 1 17 28 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 34 ] 107 113 C G - - + MP 128 127 6 132 6 2 2 14 25 -11.123 -11.062 -0.005 -9.838 -10.118 -10.513 -7.858 -8.087 -7.217 -4.275 -5.589 -7.388 3.714 0.003 -7.308 -4.217 -1.566 -6.375 -1.048 -7.716 -0.196 -6.105 + ML 129 127 6 132 6 1 1 14 26 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 130 127 6 132 6 1 1 14 25 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094 + D 131 127 6 132 6 0 0 12 24 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319 + IL 132 132 5 132 6 1 1 16 27 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 133 133 6 133 5 1 1 15 26 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 35 ] 108 112 g c - - + MP 134 133 6 138 6 2 2 11 22 -11.123 -11.062 -0.005 -9.838 -10.118 -10.513 -5.059 -1.141 -4.941 0.305 -5.777 -2.040 -1.141 -5.549 -1.987 2.824 -5.607 -0.837 2.428 -4.836 -3.095 -3.937 + ML 135 133 6 138 6 1 1 12 23 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 136 133 6 138 6 1 1 12 23 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094 + D 137 133 6 138 6 0 0 10 21 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319 + IL 138 138 5 138 6 1 1 14 25 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 139 139 6 139 5 1 1 13 24 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 36 ] 109 111 C G - - + MP 140 139 6 144 3 2 2 8 15 -1.219 * -0.810 -3.831 -1.791 -1.804 -0.622 -0.649 -4.835 3.221 -0.703 -1.388 0.387 -4.567 -2.263 -0.059 -4.139 0.021 -3.085 + ML 141 139 6 144 3 1 1 7 14 -1.000 * -1.000 0.368 -0.385 -0.191 0.094 + MR 142 139 6 144 3 1 1 7 14 -1.000 * -1.000 0.368 -0.385 -0.191 0.094 + D 143 139 6 144 3 0 0 6 13 -1.000 * -1.000 + IL 144 144 5 144 3 1 1 6 13 -3.935 * -0.098 0.000 0.000 0.000 0.000 + IR 145 145 6 145 2 1 1 13 28 -1.823 -0.479 0.000 0.000 0.000 0.000 + [ END 37 ] - - - - - - + E 146 145 6 -1 0 0 0 0 0 +// +HMMER3/f [i1.1 | June 2012] +NAME Hammerhead_1 +ACC RF00163 +DESC Hammerhead ribozyme (type I) +LENG 46 +MAXL 1024 +ALPH RNA +RF no +MM no +CONS yes +CS yes +MAP yes +DATE Wed Jun 13 14:38:02 2012 +COM [1] ../wd-infernal/src/cmbuild --informat stockholm Hammerhead_1.cm - +NSEQ 30 +EFFN 30.000000 +CKSUM 408657105 +STATS LOCAL MSV -7.1980 0.72420 +STATS LOCAL VITERBI -8.0264 0.72420 +STATS LOCAL FORWARD -3.9161 0.72420 +HMM A C G U + m->m m->i m->d i->m i->i d->m d->d + COMPO 1.23092 1.40744 1.36279 1.57376 + 1.38629 1.38629 1.38629 1.38629 + 0.00623 5.77455 5.77455 1.46634 0.26236 0.00000 * + 1 1.03323 0.79283 2.13237 2.61692 1 c - - ( + 1.38629 1.38629 1.38629 1.38629 + 0.00623 5.77455 5.77455 1.46634 0.26236 1.09861 0.40547 + 2 3.59466 2.18256 2.82748 0.22237 2 U - - ( + 1.38629 1.38629 1.38629 1.38629 + 0.00623 5.77455 5.77455 1.46634 0.26236 1.09861 0.40547 + 3 2.15345 0.98104 3.11370 0.76667 3 u - - ( + 1.38629 1.38629 1.38629 1.38629 + 0.05444 5.77455 2.99807 1.46634 0.26236 1.09861 0.40547 + 4 4.24678 0.95974 4.00257 0.53712 4 U - - ( + 1.38629 1.38629 1.38629 1.38629 + 0.00654 5.72664 5.72664 1.46634 0.26236 0.11735 2.20069 + 5 1.12534 0.96979 2.31577 1.62149 5 c - - ( + 1.38629 1.38629 1.38629 1.38629 + 0.00623 5.77455 5.77455 1.46634 0.26236 1.09861 0.40547 + 6 1.83734 1.02725 0.99864 2.16813 6 g - - ( + 1.38629 1.38629 1.38629 1.38629 + 0.02732 5.77455 3.73624 1.46634 0.26236 1.09861 0.40547 + 7 2.30555 0.15959 4.97377 3.19700 7 C - - , + 1.38629 1.38629 1.38629 1.38629 + 0.00636 5.75360 5.75360 1.46634 0.26236 0.23151 1.57667 + 8 2.52281 2.70925 4.60249 0.17061 8 U - - , + 1.38629 1.38629 1.38629 1.38629 + 0.00623 5.77455 5.77455 1.46634 0.26236 1.09861 0.40547 + 9 5.35721 6.55570 0.00897 5.87934 9 G - - , + 1.38629 1.38629 1.38629 1.38629 + 0.00623 5.77455 5.77455 1.46634 0.26236 1.09861 0.40547 + 10 0.03429 5.39065 5.34517 3.71412 10 A - - , + 1.38629 1.38629 1.38629 1.38629 + 0.00623 5.77455 5.77455 1.46634 0.26236 1.09861 0.40547 + 11 0.79172 1.04615 2.19961 2.46748 11 a - - , + 1.38629 1.38629 1.38629 1.38629 + 0.00623 5.77455 5.77455 1.46634 0.26236 1.09861 0.40547 + 12 3.53425 3.96572 0.05716 4.90357 12 G - - , + 1.38629 1.38629 1.38629 1.38629 + 0.00623 5.77455 5.77455 1.46634 0.26236 1.09861 0.40547 + 13 0.12560 3.93607 4.09097 2.50370 13 A - - , + 1.38629 1.38629 1.38629 1.38629 + 0.00623 5.77455 5.77455 1.46634 0.26236 1.09861 0.40547 + 14 3.41777 5.75066 0.03993 5.75153 14 G - - < + 1.38629 1.38629 1.38629 1.38629 + 0.00623 5.77455 5.77455 1.46634 0.26236 1.09861 0.40547 + 15 0.87659 3.67795 4.83368 0.59681 15 U - - < + 1.38629 1.38629 1.38629 1.38629 + 0.00623 5.77455 5.77455 1.46634 0.26236 1.09861 0.40547 + 16 5.39084 0.11506 3.06420 2.85701 16 C - - < + 1.38629 1.38629 1.38629 1.38629 + 0.00623 5.77455 5.77455 1.46634 0.26236 1.09861 0.40547 + 17 5.36903 0.68500 0.84077 2.81552 17 C - - < + 1.38629 1.38629 1.38629 1.38629 + 0.03354 5.77455 3.51072 1.46634 0.26236 1.09861 0.40547 + 18 0.83775 0.82648 3.31412 2.37129 18 c - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.00640 5.74742 5.74742 1.46634 0.26236 0.18889 1.75957 + 19 0.10650 3.44440 2.86354 4.41968 19 A - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.56978 5.77455 0.84108 1.46634 0.26236 1.09861 0.40547 + 20 3.01833 2.44155 0.28028 2.22081 20 G - - _ + 1.38629 1.38629 1.38629 1.38629 + 1.27177 0.33655 5.21569 4.16850 0.01560 0.01430 4.25462 + 21 0.60412 0.95510 3.08690 3.77105 92 A - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.00623 5.77455 5.77455 1.46634 0.26236 1.09861 0.40547 + 22 0.04322 3.53348 5.10004 4.96121 93 A - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.00623 5.77455 5.77455 1.46634 0.26236 1.09861 0.40547 + 23 4.51754 0.73525 5.23563 0.68443 94 U - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.00623 5.77455 5.77455 1.46634 0.26236 1.09861 0.40547 + 24 0.08370 4.61887 3.19008 3.53145 95 A - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.00623 5.77455 5.77455 1.46634 0.26236 1.09861 0.40547 + 25 0.81105 5.42436 0.60638 5.13614 96 G - - > + 1.38629 1.38629 1.38629 1.38629 + 0.00623 5.77455 5.77455 1.46634 0.26236 1.09861 0.40547 + 26 2.43609 5.43933 0.10275 5.14935 97 G - - > + 1.38629 1.38629 1.38629 1.38629 + 0.00623 5.77455 5.77455 1.46634 0.26236 1.09861 0.40547 + 27 0.68822 5.06181 2.61961 0.87140 98 A - - > + 1.38629 1.38629 1.38629 1.38629 + 0.00623 5.77455 5.77455 1.46634 0.26236 1.09861 0.40547 + 28 5.71908 0.08217 3.04602 3.57352 99 C - - > + 1.38629 1.38629 1.38629 1.38629 + 0.00623 5.77455 5.77455 1.46634 0.26236 1.09861 0.40547 + 29 4.88261 5.77649 0.08025 2.71153 100 G - - , + 1.38629 1.38629 1.38629 1.38629 + 0.00623 5.77455 5.77455 1.46634 0.26236 1.09861 0.40547 + 30 0.05959 4.79754 3.64391 3.75310 101 A - - , + 1.38629 1.38629 1.38629 1.38629 + 0.01793 5.77455 4.22212 1.46634 0.26236 1.09861 0.40547 + 31 0.06843 4.66986 3.65346 3.47823 102 A - - , + 1.38629 1.38629 1.38629 1.38629 + 0.05510 2.98644 5.76292 1.11549 0.39713 0.35309 1.21238 + 32 0.04101 5.80802 3.41131 5.47742 106 A - - < + 1.38629 1.38629 1.38629 1.38629 + 0.00623 5.77455 5.77455 1.46634 0.26236 1.09861 0.40547 + 33 5.28139 0.12533 3.64275 2.44723 107 C - - < + 1.38629 1.38629 1.38629 1.38629 + 0.00623 5.77455 5.77455 1.46634 0.26236 1.09861 0.40547 + 34 2.20664 3.07015 0.70574 1.05047 108 g - - < + 1.38629 1.38629 1.38629 1.38629 + 0.00623 5.77455 5.77455 1.46634 0.26236 1.09861 0.40547 + 35 2.50530 0.41235 2.10756 2.00452 109 C - - < + 1.38629 1.38629 1.38629 1.38629 + 0.53026 0.89540 5.77455 0.01514 4.19809 1.09861 0.40547 + 36 2.05036 2.24662 0.40694 2.30390 111 G - - > + 1.38629 1.38629 1.38629 1.38629 + 0.00623 5.77455 5.77455 1.46634 0.26236 1.09861 0.40547 + 37 1.03532 0.71870 3.23231 2.13677 112 c - - > + 1.38629 1.38629 1.38629 1.38629 + 0.00623 5.77455 5.77455 1.46634 0.26236 1.09861 0.40547 + 38 3.41070 5.34089 0.11195 2.68674 113 G - - > + 1.38629 1.38629 1.38629 1.38629 + 0.00623 5.77455 5.77455 1.46634 0.26236 1.09861 0.40547 + 39 5.68796 4.60340 5.63084 0.01714 114 U - - > + 1.38629 1.38629 1.38629 1.38629 + 0.00623 5.77455 5.77455 1.46634 0.26236 1.09861 0.40547 + 40 4.88576 0.07712 3.40191 3.40034 115 C - - , + 1.38629 1.38629 1.38629 1.38629 + 0.11651 2.23609 5.77455 1.10642 0.40158 1.09861 0.40547 + 41 2.40597 0.91826 0.95229 2.08141 119 c - - ) + 1.38629 1.38629 1.38629 1.38629 + 0.00623 5.77455 5.77455 1.46634 0.26236 1.09861 0.40547 + 42 1.72696 2.43677 0.95991 1.04468 120 g - - ) + 1.38629 1.38629 1.38629 1.38629 + 0.00623 5.77455 5.77455 1.46634 0.26236 1.09861 0.40547 + 43 0.73976 4.11291 0.79071 2.93951 121 a - - ) + 1.38629 1.38629 1.38629 1.38629 + 0.00623 5.77455 5.77455 1.46634 0.26236 1.09861 0.40547 + 44 0.93223 2.43190 0.99115 1.91523 122 a - - ) + 1.38629 1.38629 1.38629 1.38629 + 0.00623 5.77455 5.77455 1.46634 0.26236 1.09861 0.40547 + 45 0.09787 5.34039 2.50056 5.05195 123 A - - ) + 1.38629 1.38629 1.38629 1.38629 + 0.00623 5.77455 5.77455 1.46634 0.26236 1.09861 0.40547 + 46 2.84647 2.06148 0.87840 0.91820 124 g - - ) + 1.38629 1.38629 1.38629 1.38629 + 0.00312 5.77144 * 1.46634 0.26236 0.00000 * +// diff --git a/testsuite/bug-i34.pl b/testsuite/bug-i34.pl new file mode 100644 index 00000000..cc4708d9 --- /dev/null +++ b/testsuite/bug-i34.pl @@ -0,0 +1,63 @@ +#! /usr/bin/perl + +# bug i34 - cmalign was improperly arranging EL and IL emits for +# MATP->END adjacent nodes. ELs should always come 5' +# of ILs. +# +# EPN, Wed Dec 12 09:53:41 2012 +# +# i34.1: fasta file to test for bug +# i34.2: output alignment + +$usage = "perl bug-i34.pl \n"; +if ($#ARGV != 1) { die "Wrong argument number.\n$usage"; } + +$cmalign = shift; +$cmfile = shift; +$ok = 1; + +# Make our test sequence file, i33.1 +# +open (OUT, ">i34.1") || die; +print OUT <CABF01052337.1/3430-3358 +AUCCAGCCGACGAGUCCCAAAUAGGACUUAUUCACUUAUUAUAACUUUCUUCUAAUUAGU +UACUAACCAGUAU +>CABF01042628.1/147-189 +AUUCAUCCGACGAGUCCCAAACAGAACGAAACGUGUCUUGAAU +>DQ137717.1/100-147 +AUCCAGUUGACGAGUCCUAAAUAGGACGAAGUGUUGCGCGUCCUGGAU +>CABF01006271.1/3669-3765 +AUCCAGGACGUGUUUCGUUCUACUUGGGACUUGUCGGCAGAAUGUACCUUCAUCCGAAUG +UUGAUAUUCACAUUUGGACGAAACGCGCGUCCUGGAU +>FN376310.1/164786-164833 +AUCCAGCUGGCGAAUCCUGAAUAUUACGAAACGCGCGUCAAACUGGAU +>CABF01059124.1/399-355 +ACUAGCUGAUGAGUCCCAAAUAGGGACGAAACGCGCGUCCUGGAU +END +close OUT; + +if ($ok) { + $output = `$cmalign $cmfile i34.1`; + if ($? != 0) { $ok = 0; } + + # make sure output is what it should be: + if($output !~ /AUCCAGCCGACGAGUCCCA\-AAUA\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.GGAC\-\-\-\-\-\-\-uuauucacuuauuauaacuuucuucuaauuaguuacuaa\.\.\.\-\-\-\-C\.\.\.CAGUAU/) { + $ok = 0; + } + if($output !~ /AUCCAGUUGACGAGUCCUA\-AAUA\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.GGACGAAGUGU\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.ugcGCGUC\.\.\.CUGGAU/) { + $ok = 0; + } + if($output !~ /AUCCAGCUGGCGAAU\-\-\-\-\-\-\-\-\-ccuga\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.auauu\.\-\-ACGAAACGC\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.GCGUCaaaCUGGAU/) { + $ok = 0; + } + +} + +foreach $tmpfile ("i33.1") { + unlink $tmpfile if -e $tmpfile; +} +if ($ok) { print "ok\n"; exit 0; } +else { print "FAILED\n"; exit 1; } + + diff --git a/testsuite/dev_testsuite.sqc b/testsuite/dev_testsuite.sqc index 0d4ea4e0..500c122e 100644 --- a/testsuite/dev_testsuite.sqc +++ b/testsuite/dev_testsuite.sqc @@ -79,6 +79,7 @@ 1 exercise bug/i31-neg-dbsize perl !testsuite/bug-i31.pl! @src/cmsearch@ !testsuite/bug-i31.cm! !testsuite/bug-i31.fa! 1 exercise bug/i32-refine-ss perl !testsuite/bug-i32.pl! @src/cmbuild@ 1 exercise bug/i33-cmsearch-A perl !testsuite/bug-i33.pl! @src/cmsearch@ @src/cmbuild@ !testsuite/bug-i33.cm! +1 exercise bug/i34-cmalign-EL perl !testsuite/bug-i34.pl! @src/cmalign@ !testsuite/bug-i34.cm! ################################################################ # Option tests diff --git a/testsuite/testsuite.sqc b/testsuite/testsuite.sqc index add21ee2..c0ab2b57 100644 --- a/testsuite/testsuite.sqc +++ b/testsuite/testsuite.sqc @@ -63,6 +63,7 @@ 1 exercise bug/i31-neg-dbsize perl !testsuite/bug-i31.pl! @src/cmsearch@ !testsuite/bug-i31.cm! !testsuite/bug-i31.fa! 1 exercise bug/i32-refine-ss perl !testsuite/bug-i32.pl! @src/cmbuild@ 1 exercise bug/i33-cmsearch-A perl !testsuite/bug-i33.pl! @src/cmsearch@ @src/cmbuild@ !testsuite/bug-i33.cm! +1 exercise bug/i34-cmalign-EL perl !testsuite/bug-i34.pl! @src/cmalign@ !testsuite/bug-i34.cm! ################################################################ # Option tests From f9346c9adee3295a0c598cd8ad5b533e299eb2dd Mon Sep 17 00:00:00 2001 From: Eric Nawrocki Date: Fri, 14 Dec 2012 11:28:51 +0000 Subject: [PATCH 12/82] Fixed and logged bug i35 in Infernal 1.1 release branch. This bug commonly caused failures for a specific type of MPI cmcalibrate job: when the model was large (W>~1500) and number or processors was >60. I never fully understood the nature of this bug, but figured out a workaround. The issue was related to the first MPI_Send() call by mpi_worker() and/or the first MPI_Probe() call by mpi_master(). It seems like there is a 'time-out' that occurs by at least 1 worker that causes the MPI process to fail when the initial mpi_master() step of forecasting the total run time takes too long. It is only after this forecast is complete that the master calls MPI_Probe() to receive the worker's initial MPI_Send() (which is sent almost immediately after the process starts). For large models, the forecast step can take up to several minutes, so my guess is that the worker's MPI_Send() gives up after too long. (If I simplify the forecast so it goes quicker then the failure does not occur.) However, I never understood why this only occurs with many processors, as I've never observed the failure with less than 60 processors. The bug is logged in BUGTRAX, but not checked for in the testsuite, since it requires MPI and only occurs for large jobs that commonly take on the order of hours. Updated 1.1rc2 release notes to mention that this bug has been fixed. git-svn-id: https://svn.janelia.org/eddylab/eddys/src/infernal/branches/1.1@4338 db3e70e4-12e1-0310-b23f-81a6e3d09ba7 --- Bugs/BUGTRAX | 33 +++++++++++++++++++++++++++++++-- release-notes/RELEASE-1.1rc2 | 21 +++++++++++++++++++-- src/cmcalibrate.c | 21 +++++++++++++++++++++ 3 files changed, 71 insertions(+), 4 deletions(-) diff --git a/Bugs/BUGTRAX b/Bugs/BUGTRAX index 23e4c442..d26152a4 100644 --- a/Bugs/BUGTRAX +++ b/Bugs/BUGTRAX @@ -980,7 +980,6 @@ executed. This bug was fixed in the Infernal 1.1 release branch as of revision 4274. // -// ID i34 TITLE cmalign improperly arranging EL and IL emits for MATP->END adjacent nodes STATUS CLOSED @@ -1003,7 +1002,37 @@ created (rev 4272) and fixed in between releases 1.1rc1 and This bug was fixed in the Infernal 1.1 release branch as of revision 4336. // +ID i35 +TITLE cmcalibrate MPI commonly fails for large models (W>1000) with many (>80) processors +STATUS CLOSED +XREF Notes in ~nawrockie/notebook/12_1112_inf_release_1p1rc2/00LOG +REPORTED_BY Eric Nawrocki +CLOSED_DATE EPN, Fri Dec 14 06:09:07 2012 +DESCRIPTION + +Something was going wrong in MPI cmcalibrate, but only when run +with many processors (>80) on large models (W>1000). The issue was related +to the first MPI_Send() call in mpi_worker() and/or the first MPI_Probe() +call in mpi_master(). I never fully understood the problem, but my +experiments suggested there was some type of 'time-out' going on by some +of the worker nodes as they waited for the master to receive the first +message they sent. This 'time-out' caused the cmcalibrate MPI process +to fail, and only happened when the initial time forecast, done by the +master *before* it would call MPI_Probe() to receive any of the worker's +sent messages, took a long time (as it will for large models). I never +understood why this only occurred for many processors though (running +with 41 or less never exhibited the bug). + +The fix is for mpi_master() to send a 'ready signal' to each specific +worker via MPI_Send() after it's done the time forecast. During the +forecast, each worker is waiting to receive it's 'ready signal' from +the master. This solves the problem in that I never observe failures +for large numbers of processors on large models, but, again, I can't +explain exactly why. +This bug was fixed in the Infernal 1.1 release branch as of revision +4338. +// #### -#### 1.1rc2 release: 13 December 2012 +#### 1.1rc2 release: 14 December 2012 #### diff --git a/release-notes/RELEASE-1.1rc2 b/release-notes/RELEASE-1.1rc2 index 73879d2b..42827ce5 100644 --- a/release-notes/RELEASE-1.1rc2 +++ b/release-notes/RELEASE-1.1rc2 @@ -1,6 +1,6 @@ Infernal 1.1rc2 release notes: Infernal 1.1 release candidate 2 http://infernal.janelia.org/ -EPN, Tue Nov 13 09:04:00 2012 +EPN, Fri Dec 14 06:14:53 2012 ________________________________________________________________ This is the second release candidate (1.1rc2) for Infernal 1.1. In @@ -11,32 +11,49 @@ improvements, listed below: The following reported bugs have been fixed: - #i28: cmsearch: fails in rare cases when the alignment matrix grows too larg. + - #i29: cmconvert: v1.0 files with 0 HMM filter threshold points were incorrectly parsed + - #i30: cmsearch: failed on zero length sequences + - #i31: cmsearch: E-values would turn negative for target databases > 2 Gb on 32-bit systems + - #i32: cmbuild: --refine failed if individual sequences had SS annotation + - #i33: cmsearch: -A failed on some CM files created by cmconvert of v1.0 CM files + + - #i35: cmcalibrate MPI would commonly fail for very large models + when using many (>60) processors. Other improvements: - non-MPI cmsearch can now read gzipped target sequence fasta files. + - fixed problems with building Infernal on 32-bit Ubuntu, FreeBSD and - OpenBSD operating systems. + OpenBSD operating systems. + - cmscan --glist option added to allow specific models (listed in ) to be run in glocal search mode. + - cmcalibrate --memreq now more accurately predicts memory requirements. + - 'make clean' and 'make distclean' now work properly. + - the user guide includes a section listing program options that have changed between v1.0 and v1.1. + - several minor bug fixes to HMM filtering code in hmmer library. + - changed how cmalign orders local end ('~') and insert ('.') columns relative to each other for rare models where a MATP (basepair) node models two adjacent consensus positions. + - updated Easel miniapps esl-alimerge and esl-compalign to work more cleanly with Infernal v1.1 output alignments. + - removed unimportant --with-gsl flag to configure. diff --git a/src/cmcalibrate.c b/src/cmcalibrate.c index b3aee91d..ceb7717c 100644 --- a/src/cmcalibrate.c +++ b/src/cmcalibrate.c @@ -936,6 +936,21 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg) total_psec += psec; print_forecasted_time(go, cfg, errbuf, cm, psec); + /* Time forecast complete, send ready signal to all workers. + * (This 'fixes' bug i35: in 1.1rc1, calibrations for large models + * on large numbers of processors (W>~1000, nproc>~80) would fail, + * seemingly due to too long a wait by mpi_worker()'s first + * MPI_Send(), but I never figured out exactly why. Regardless, + * sending a specific signal to each worker, who is waiting for + * it before it begins working solves the issue.) + */ + for(dest = 1; dest < cfg->nproc; dest++) { + if (MPI_Send(&status, 1, MPI_INT, dest, INFERNAL_READY_TAG, MPI_COMM_WORLD) != 0) mpi_failure("mpi send failed"); +#if DEBUG_MPI + printf("master sent ready signal to worker %d\n", dest); +#endif + } + esl_stopwatch_Start(cfg->w); for(exp_mode = 0; exp_mode < EXP_NMODES; exp_mode++) { /* do we need to switch from global configuration to local? */ @@ -1164,6 +1179,12 @@ mpi_worker(ESL_GETOPTS *go, struct cfg_s *cfg) if((status = initialize_cm(go, cfg, errbuf, cm, FALSE)) != eslOK) mpi_failure(errbuf); if((status = generate_sequences(go, cfg, errbuf, cm, &sq_block)) != eslOK) mpi_failure(errbuf); + /* wait for ready signal from master (this addresses bug i35, see comment in mpi_master()) */ +#if DEBUG_MPI + printf("worker %d waiting for ready signal from master\n", cfg->my_rank); +#endif + if((status = MPI_Recv(&status, 1, MPI_INT, 0, INFERNAL_READY_TAG, MPI_COMM_WORLD, &mpistatus)) != 0) mpi_failure("failed to receive ready signal"); + for(exp_mode = 0; exp_mode < EXP_NMODES; exp_mode++) { /* do we need to switch from global configuration to local? */ if(exp_mode > 0 && (! ExpModeIsLocal(exp_mode-1)) && ExpModeIsLocal(exp_mode)) { From a3dac38ac587c316d7302a620b5804d6f3b0a5b1 Mon Sep 17 00:00:00 2001 From: Eric Nawrocki Date: Fri, 14 Dec 2012 13:41:26 +0000 Subject: [PATCH 13/82] Updated example of -h in userguide to show 1.1rc2 and December 2012 instead of 1.1 and June 2012. git-svn-id: https://svn.janelia.org/eddylab/eddys/src/infernal/branches/1.1@4340 db3e70e4-12e1-0310-b23f-81a6e3d09ba7 --- documentation/userguide/more.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/userguide/more.tex b/documentation/userguide/more.tex index 6f306926..5fd9411e 100644 --- a/documentation/userguide/more.tex +++ b/documentation/userguide/more.tex @@ -23,7 +23,7 @@ \subsection{How do I cite Infernal?} \begin{sreoutput} # cmscan :: search sequence(s) against a CM database -# INFERNAL 1.1 (June 2012) +# INFERNAL 1.1rc2 (December 2012) # Copyright (C) 2012 Howard Hughes Medical Institute. # Freely distributed under the GNU General Public License (GPLv3). # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From f45efd3a4e4619d715f1f1f9ada8da2b2093c20d Mon Sep 17 00:00:00 2001 From: Eric Nawrocki Date: Fri, 14 Dec 2012 20:06:41 +0000 Subject: [PATCH 14/82] Updated 00CHECKLIST post-1.1rc2 release. git-svn-id: https://svn.janelia.org/eddylab/eddys/src/infernal/branches/1.1@4345 db3e70e4-12e1-0310-b23f-81a6e3d09ba7 --- release-notes/00CHECKLIST | 298 ++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 249 insertions(+), 49 deletions(-) diff --git a/release-notes/00CHECKLIST b/release-notes/00CHECKLIST index c716734c..17285283 100644 --- a/release-notes/00CHECKLIST +++ b/release-notes/00CHECKLIST @@ -9,8 +9,9 @@ trunk, not in a release branch. It isn't included in releases anyway. Subversion repository: https://svn.janelia.org/eddylab/eddys/src/infernal -HMMER follows an 'unstable trunk' policy. Each major release goes -onto a stable branch. Every release (even minor ones) is tagged. +Infernal, like HMMER, follows an 'unstable trunk' policy. Each major +release goes onto a stable branch. Every release (even minor ones) is +tagged. Release types: major releases, minor releases, and snapshots. A major release gets its own branch. A minor release puts bug fixes into a @@ -68,9 +69,9 @@ development of the next main release. -m "created Infernal 1.1 release branch" -================================================================ -= Work in the current release branch (~/releases/hmmer-release) -================================================================ +================================================================== += Work in the current release branch (~/releases/infernal-release) +================================================================== Once a release branch has been taken (either new, or by a merge from the trunk destined to become a release), work only in the release @@ -82,9 +83,9 @@ is complete. svn checkout https://svn.janelia.org/eddylab/eddys/src/infernal/branches/1.1 infernal-release Don't call this working directory infernal-1.1, nor infernal! Call it -infernal-release, because later "make dist" is going to try to create -infernal-xx as its release, and because you want to recognize that it's -different from src/infernal. +infernal-release, because later we'll create infernal-xx as its +release, and because you want to recognize that it's different from +src/infernal. If this is the first time (a new release branch), you also need to update the "svn:externals" so Easel and HMMER are checked out from @@ -166,18 +167,12 @@ wrong, it's easy enough to come back and make a new tarball. . release-notes/LICENSE.sh -********************************************************************* -NOTE: For 1.1rc1, I didn't regress against any old version, so -INFERNAL_OLDVERSION is undefined. For next release, it will be -defined, so I left the notes pertaining to it here (these were copied -from HMMER3's 00CHECKLIST). -********************************************************************* - * Edit .bashrc I use the following environment variables in the scripting below: - INFERNAL_VERSION The current version. - INFERNAL_OLDVERSION The version we regress against. (found in ~releases/infernal-${INFERNAL_OLDVERSION} - INFERNAL_RELEASE_NOTEBOOK The e-notebook dir ({HOME}/notebook/xxx) + INFERNAL_VERSION The current version. + INFERNAL_OLDVERSION The version we regress against. (found in ~releases/infernal-${INFERNAL_OLDVERSION} + INFERNAL_RELEASE_NOTEBOOK The e-notebook dir ({HOME}/notebook/xxx) + INFERNAL_OLDRELEASE_NOTEBOOK The e-notebook dir used for last release ({HOME}/notebook/xxx) Having these set everywhere, in all the ssh'ing you're about to do, simplifies the scripting below, and reduces the odds of @@ -225,9 +220,6 @@ On login-eddy (our compile host): make dev >> build.out 2>&1 make check >> build.out 2>&1 -***Again, I skipped the OLDVERSION steps for the 1.1rc1 release. Do - them for the next release. - ssh login-eddy cd ~/releases/infernal-${INFERNAL_OLDVERSION} make distclean @@ -262,16 +254,19 @@ Release candidate: builddir (gcc) ~/releases/infernal-${INFERNAL_OLDVERSION}/build-gcc builddir (icc,MPI) ~/releases/infernal-${INFERNAL_OLDVERSION}/build-icc-mpi - * Update the user guide - including the tutorial section, and version numbers in the installation section. See last ~/notebook entry for scripts. Don't slack off on this step - it's a useful regression test as well. -* Commit +* Commit (don't forget to commit in hmmer and easel too!) svn status do any cleanup... svn commit + cd hmmer + svn commit + cd ../easel + svn commit ================================================================ @@ -282,8 +277,7 @@ ${INFERNAL_VERSION}, ${EASEL_VERSION}, and ${HMMER_VERSION} tags used below should match @INFERNAL_VERSION@, @EASEL_VERSION@ and @HMMER_VERSION@ in configure.ac, Makefile. -* - cd ~/releases +* cd ~/releases * Delete any old releases of the same number rm -rf infernal-${INFERNAL_VERSION} @@ -292,16 +286,17 @@ below should match @INFERNAL_VERSION@, @EASEL_VERSION@ and * Export a snapshot, alpha, beta, or release candidate from the development trunk: svn export https://svn.janelia.org/eddylab/eddys/src/infernal/trunk infernal-${INFERNAL_VERSION} - cd infernal-${INFERNAL_VERSION} or: Export a major or minor release from its branch svn export https://svn.janelia.org/eddylab/eddys/src/infernal/branches/1.1 infernal-${INFERNAL_VERSION} + cd infernal-${INFERNAL_VERSION} autoconf; (cd easel; autoconf); (cd hmmer; autoconf); ./configure . release-notes/LICENSE.sh 1.1rc1: exported 4130/774 + 1.1rc2: exported 4342/834 * Check that svn has file permissions right. Both of these should have no output. @@ -309,7 +304,19 @@ below should match @INFERNAL_VERSION@, @EASEL_VERSION@ and find . -perm o+x ! -perm -u+x -print * versioning, dating, licensing (these are originally set in - configure.ac, and exported as shell variables by LICENSE.sh call above) + configure.ac, and exported as shell variables by LICENSE.sh call + above, make sure they're correct using echo before proceeding) + + echo ${INFERNAL_VERSION} + echo ${EASEL_VERSION} + echo ${HMMER_VERSION} + echo ${INFERNAL_DATE} + echo ${HMMER_DATE} + echo ${EASEL_DATE} + echo ${INFERNAL_COPYRIGHT} + echo ${HMMER_COPYRIGHT} + echo ${EASEL_COPYRIGHT} + * must do Easel and HMMER first easel/devkit/sedition EASEL_VERSION ${EASEL_VERSION} EASEL_DATE "${EASEL_DATE}" EASEL_COPYRIGHT "${EASEL_COPYRIGHT}" easel/00README @@ -322,7 +329,7 @@ below should match @INFERNAL_VERSION@, @EASEL_VERSION@ and easel/devkit/sedition HMMER_VERSION ${HMMER_VERSION} HMMER_DATE "${HMMER_DATE}" HMMER_COPYRIGHT "${HMMER_COPYRIGHT}" hmmer/COPYRIGHT easel/devkit/sedition HMMER_VERSION ${HMMER_VERSION} HMMER_DATE "${HMMER_DATE}" HMMER_COPYRIGHT "${HMMER_COPYRIGHT}" hmmer/INSTALL easel/devkit/sedition HMMER_VERSION ${HMMER_VERSION} HMMER_DATE "${HMMER_DATE}" HMMER_COPYRIGHT "${HMMER_COPYRIGHT}" hmmer/release-notes/LICENSE.tag - find easel -type f -exec easel/devkit/sedition-pp LICENSE hmmer/release-notes/LICENSE.tag {} \; + find hmmer -type f -exec easel/devkit/sedition-pp LICENSE hmmer/release-notes/LICENSE.tag {} \; easel/devkit/sedition INFERNAL_VERSION ${INFERNAL_VERSION} INFERNAL_DATE "${INFERNAL_DATE}" INFERNAL_COPYRIGHT "${INFERNAL_COPYRIGHT}" README easel/devkit/sedition INFERNAL_VERSION ${INFERNAL_VERSION} INFERNAL_DATE "${INFERNAL_DATE}" INFERNAL_COPYRIGHT "${INFERNAL_COPYRIGHT}" COPYRIGHT @@ -342,15 +349,22 @@ below should match @INFERNAL_VERSION@, @EASEL_VERSION@ and mv Userguide.pdf ../../Userguide.pdf cd ../.. - * clean up files that don't belong in the distro, including hmmer's easel subdir. (I chose to remove Manuscripts because it's big (39M)) + + Note: after 1.1rc1, we changed this part: documentation/userguide + in infernal and hmmer, and documentation/ in easel are no longer + removed. Their Makefile.in's have been updated to check for req'd + executables before building the guide. They were originally removed + b/c Sean didn't want users going in there, running make, failing + with many errors due to missing executables, and reporting bugs to + us. + make distclean cp release-notes/RELEASE-${INFERNAL_VERSION} RELEASE-NOTES rm -rf Bugs rm -rf Manuscripts - rm -rf documentation/userguide rm -rf release-notes rm -rf autobuild @@ -358,7 +372,6 @@ below should match @INFERNAL_VERSION@, @EASEL_VERSION@ and rm -rf easel rm -rf bugs rm -rf contrib - rm -rf documentation/userguide rm -rf release-notes rm -rf test-speed rm -rf autobuild @@ -366,14 +379,16 @@ below should match @INFERNAL_VERSION@, @EASEL_VERSION@ and cd ../easel rm -f 00CHECKLIST LICENSE.csh.in LICENSE.tag - rm -rf documentation cd .. + rm *~ + * record and finish release notes (Sean's command in HMMER that I skipped because I'm not sure what it does: cat RELEASE-NOTES | dumpnotes ) emacs RELEASE-NOTES + rm *~ Delete TO-DO sections and clean up for public consumption. (Again, not sure of this command that Sean uses for hmmer: 'texclean') @@ -384,6 +399,7 @@ Delete TO-DO sections and clean up for public consumption. gzip infernal-${INFERNAL_VERSION}.tar 1.1rc1: 11.7 Mb (gzipped) + 1.1rc2: 19.1 Mb (gzipped, diff b/c of documentation directories) All subsequent tests are on this source distro. @@ -401,6 +417,7 @@ On login-eddy (our compile host): make >> build.out 2>&1 make dev >> build.out 2>&1 make check >> build.out 2>&1 + make devcheck >> build.out 2>&1 ssh login-eddy cd ~/releases/infernal-${INFERNAL_VERSION} @@ -410,8 +427,55 @@ On login-eddy (our compile host): ../configure CC=icc LDFLAGS=-static-intel --enable-mpi > build.out 2>&1 make >> build.out 2>&1 make dev >> build.out 2>&1 - make check >> build.out 2>&1 + make devcheck >> build.out 2>&1 + +================================================================ += Build and check on all compile farm nodes +================================================================ + +Look at current list of compile farm nodes on the lab wiki page. +For each machine, we manually login and build through a +'make devcheck' and verify that all tests pass. + +Do this in ~/releases/infernal-${INFERNAL_VERSION} +(not in ~/releases/infernal-release/) + +Example: + cd ~/releases/infernal-${INFERNAL_VERSION} + mkdir build-cf-xcompile + cd build-cf-xcompile/ + +Create build.sh: + cat build.sh + ../configure > build.out 2>&1 + make V=1 >> build.out 2>&1 + make V=1 dev >> build.out 2>&1 + make V=1 check >> build.out 2>&1 + make V=1 devcheck >> build.out 2>&1 + + ssh xcompile.int.janelia.org + cd ~/releases/infernal-${INFERNAL_VERSION}/build-cf-xcompile + sh build.sh + +Wait for it to finish. Then manually verify that all tests pass. + +List of all compile farm nodes that should pass all tests as of +last release (1.1rc2): + +(See http://wiki.int.janelia.org/wiki/display/EddyLab/Compile+Farm) + for current list and for machine-specific instructions for building) + + 1) Intel Apple OS/X (xcompile.int.janelia.org) passed + 2) PowerPC IBM AIX (cf-ppc2.int.janelia.org) passed + 3) Linux on an AMD Opteron (cf-suse.int.janelia.org) passed + 4) Debian 6.0.3 AMD64 (cf-debian.int.janelia.org) passed + 5) Ubuntu 12.04 AMD64 (cf-ubuntu.int.janelia.org) passed + 6) Fedora 16 AMD64 (cf-fedora.int.janelia.org) passed + 7) OpenBSD 5.0 AMD64 (cf-openbsd.int.janelia.org) passed + 8) OpenSuse 12.1 AMD64 (cf-opensuse.int.janelia.org) passed + 9) FreeBSD 8.2 AMD64 (cf-freebsd.int.janelia.org) passed +10) Ubuntu 12.0.4.1 32-bit (cf-ubuntu32) passed ================================================================ = Testing @@ -419,11 +483,7 @@ On login-eddy (our compile host): See latest e-notebook for tests. -As of 1.1rc1, I'm not doing any regressions. At next release, I'll -regress against 1.1rc1. - -Current testing is three sets of jobs, see notebook 00LOG. These -scripts should be in ${INFERNAL_RELEASE_NOTEBOOK}/tests/ +Current testing is three sets of jobs, see old notebook 00LOG. tests-fast.sh: fast enough to run in succession. tests-fast-valgrind.sh: same tests as tests-fast.sh but valgrind @@ -432,14 +492,116 @@ tests-slow.sh: submit to cluster, includes MPI jobs. Output tests-fast.sh and tests-fast-valgrind.sh to a file, and manually look at each line for errors. -Remember to test on both builds (gcc and icc-mpi). +These instructions should work post-1.1rc2: -Then run some anecdotal tests. +Set up tests: + cd ${INFERNAL_RELEASE_NOTEBOOK} + mkdir tests + mkdir tests/out-files/ + mkdir tests/err-files/ + mkdir tests/out-oldversion-files/ + mkdir tests/err-oldversion-files/ + cd tests + cp ${INFERNAL_OLDRELEASE_NOTEBOOK}/tests/cp-required-files.sh ./ + sh cp-required-files.sh + +Run tests: +tests-fast*.sh run on current machine, take about 1 minute +tests-fast-valgrind*.sh submit to cluster, take about 30 minutes +tests-slow*.sh submit to cluster, take about 2.5 hours + + time sh tests-fast.sh > tests-fast.out + time sh tests-fast-oldversion.sh > tests-fast-oldversion.out + diff tests-fast.out tests-fast-oldversion.out > tests-fast.diff + + sh submit-valgrind.sh +Look at err-files/valg.1.err and make sure there's no memory leaks or errors. + diff tests-fast-valgrind.out tests-fast-valgrind-oldversion.out > tests-fast-valgrind.diff + + sh tests-slow.sh + sh tests-slow-oldversion.sh +Wait for these to finish (about 3 hours) + sh regressify-slow.sh + sh regressify-slow-oldversion.sh + sh diff-slow.sh > tests-slow.diff + +Make sure all diff output includes only expected differences. + emacs tests-fast.diff + emacs tests-fast-valgrind.diff + emacs tests-slow.diff + +Remember to test on both builds (gcc and icc-mpi), the scripts above +already do this. -Also, do a rmark3 benchmark with default settings and --mid. +Then run some anecdotal tests. + mkdir anecdotes +Some examples: + cd anecdotes + ~/releases/infernal-${INFERNAL_VERSION}/build-gcc/src/cmfetch ~/db/rfam_11.0/Rfam.cm.1_1 5S_rRNA > 5S.cm + ~/releases/infernal-${INFERNAL_OLDVERSION}/build-gcc/src/cmfetch ~/db/rfam_11.0/Rfam.cm.1_1 5S_rRNA > 5S.old.cm + diff 5S.cm 5S.old.cm + ~/releases/infernal-${INFERNAL_VERSION}/build-gcc/src/cmstat 5S.cm + ~/releases/infernal-${INFERNAL_VERSION}/build-gcc/src/cmstat 5S.old.cm + ~/releases/infernal-${INFERNAL_VERSION}/build-gcc/src/cmsearch 5S.cm ~/genomes/hvol.fa + ~/releases/infernal-${INFERNAL_OLDVERSION}/build-gcc/src/cmsearch 5S.cm ~/genomes/hvol.fa + ~/releases/infernal-${INFERNAL_OLDVERSION}/build-gcc/src/cmpress 5S.cm + ~/releases/infernal-${INFERNAL_VERSION}/build-gcc/src/cmpress 5S.cm + ~/releases/infernal-${INFERNAL_OLDVERSION}/build-gcc/src/cmpress 5S.old.cm + ~/releases/infernal-${INFERNAL_VERSION}/build-gcc/src/cmscan 5S.cm ~/genomes/hvol.fa + ~/releases/infernal-${INFERNAL_VERSION}/build-gcc/src/cmscan 5S.old.cm ~/genomes/hvol.fa + ~/releases/infernal-${INFERNAL_VERSION}/build-gcc/src/cmsearch -A 5S.sto 5S.cm ~/genomes/hvol.fa + ~/releases/infernal-${INFERNAL_VERSION}/build-gcc/easel/miniapps/esl-reformat fasta 5S.sto > 5S.fa + ~/releases/infernal-${INFERNAL_VERSION}/build-gcc/src/cmalign 5S.cm 5S.fa + +Also, do a rmark3 benchmark with default settings and --mid. +(These commands should work post-i1.1rc2 if you're doing a small +update release) + + cd ${INFERNAL_RELEASE_NOTEBOOK}/tests/ + mkdir rmark3 + cd rmark3 + mkdir models + cp ${INFERNAL_OLDRELEASE_NOTEBOOK}/tests/rmark3/rmark3.msa ./ + cp ${INFERNAL_OLDRELEASE_NOTEBOOK}/tests/rmark3/fetch.sh ./ + cp ${INFERNAL_OLDRELEASE_NOTEBOOK}/tests/rmark3/build.sh ./ + cp ${INFERNAL_OLDRELEASE_NOTEBOOK}/tests/rmark3/calibrate.sh ./ + sh fetch.sh + sh build.sh +Wait for all jobs to finish (about 1 minute) + sh calibrate.sh +Wait for all jobs to finish (about 30 minutes, if cluster is nearly empty) + cat models/*.cm > models/rmark3.cm + + cp ${INFERNAL_OLDRELEASE_NOTEBOOK}/tests/rmark3/rmark3* ./ + cp ${INFERNAL_OLDRELEASE_NOTEBOOK}/tests/rmark3/df.opts ./ + cp ${INFERNAL_OLDRELEASE_NOTEBOOK}/tests/rmark3/mid.opts ./ + cp ${INFERNAL_OLDRELEASE_NOTEBOOK}/tests/rmark3/do-symlink.sh ./ + cp ${INFERNAL_OLDRELEASE_NOTEBOOK}/tests/rmark3/do-all.sh ./ + cp ${INFERNAL_OLDRELEASE_NOTEBOOK}/tests/rmark3/do-pp.sh ./ +Edit version number in do-symlink.sh, do-all.sh, do-pp.sh + emacs do-symlink.sh + emacs do-all.sh + emacs do-pp.sh + sh do-symlink.sh + sh do-all.sh +Wait for jobs to finish (approximately 20 min) + sh do-pp.sh +Wait for jobs to finish (approximately 5 min) + +Compare .sum files with .sum files from: +${INFERNAL_OLDRELEASE_NOTEBOOK}/tests/rmark3/ Check the userguide (Userguide.pdf). +Ensure 'make clean' and 'make distclean' finish without errors. The +1.1rc1 distro had a bug that caused errors for both of these. To do +this: + cd ~/releases/infernal-${INFERNAL_VERSION}/ + sh ./configure; + make + make dev + make clean + make distclean ================================================================ = Binary distros @@ -455,6 +617,8 @@ warning: If this gets resolved in the future, we may go back to distributing binaries built with icc (64 and 32). +The lcilkrts is still a problem as of 1.1rc2 (Dec 13 2012) + Note: the configure call differs from the one Sean uses in hmmer. I specify --prefix. If I don't do that I get a 'make install' error because I don't have permission to change the permissions on the man @@ -521,8 +685,19 @@ macosx-intel build (on Sean's desktop): tar cf infernal-${INFERNAL_VERSION}-${INFERNAL_DISTRO}.tar infernal-${INFERNAL_VERSION}-${INFERNAL_DISTRO} gzip infernal-${INFERNAL_VERSION}-${INFERNAL_DISTRO}.tar -------------------------- +Look at the build output for these two distros and make sure +everything looks normal and all tests pass: + emacs ${INFERNAL_RELEASE_NOTEBOOK}/Distros/build-linux-intel-gcc.out + emacs ${INFERNAL_RELEASE_NOTEBOOK}/Distros/build-macosx-intel.out + +Test these Distro tarballs: + +linux-intel-gcc: ${INFERNAL_RELEASE_NOTEBOOK}/Distros/infernal-${INFERNAL_VERSION}-linux-intel-gcc.tar.gz +macosx-intel: ${INFERNAL_RELEASE_NOTEBOOK}/Distros/infernal-${INFERNAL_VERSION}-macosx-intel.tar.gz +Copy linux-intel-gcc to a new directory on your home dir on login-eddy +and test it with some anecdotal tets. +Copy macosx-intel tar ball to your laptop and test it. ================================================================ = Distribution @@ -543,7 +718,7 @@ macosx-intel build (on Sean's desktop): it would require changing the website significantly. ssh selab - export INFERNAL_VERSION=1.1rc1 + export INFERNAL_VERSION=1.1rc2 mkdir ~/to-be-infernal-${INFERNAL_VERSION} logout @@ -559,13 +734,16 @@ macosx-intel build (on Sean's desktop): scp infernal-${INFERNAL_VERSION}-macosx-intel.tar.gz selab:~/to-be-infernal-${INFERNAL_VERSION} ssh selab - export INFERNAL_VERSION=1.1rc1 + export INFERNAL_VERSION=1.1rc2 sudo mv ~/to-be-infernal-${INFERNAL_VERSION}/* /var/ftp/pub/software/infernal/ echo ftp://selab.janelia.org/pub/software/infernal/infernal-${INFERNAL_VERSION}.tar.gz sudo rm -f /var/ftp/pub/software/infernal/infernal.tar.gz (cd /var/ftp/pub/software/infernal; sudo ln -s infernal-${INFERNAL_VERSION}.tar.gz infernal.tar.gz) logout +* Install on login-eddy. Currently, I don't have permission to + install software on login-eddy, so just email Goran at this point. + * Update the web site and the blog I can't do a 'make', because I don't have proper permission. So I have to copy all the files that change in ~/web/infernal/ (usually just index.html) to @@ -586,21 +764,42 @@ macosx-intel build (on Sean's desktop): cd ~/web/infernal/ svn commit - + +Update website with Rfam files (if current version of Rfam is not +compatible with new version of Infernal, which was true for 1.1rc1 +and 1.1rc2). + +What I did for 1.1rc2: + + ssh selab + rm -rf ~/to-be-rfam/ + mkdir ~/to-be-rfam/ + sudo mkdir /var/ftp/pub/rfam/rfam-11.0 + logout + + cd ${INFERNAL_RELEASE_NOTEBOOK} + cd rfam-files-for-infernal-website/for-website + scp * nawrockie@selab:~/to-be-rfam/ + + ssh selab + sudo mv ~/to-be-rfam/* /var/ftp/pub/rfam/rfam-11.0/ + logout + * tag the release. Replace version # below! cd ~/releases/infernal-release svn copy https://svn.janelia.org/eddylab/eddys/src/infernal/branches/1.1\ https://svn.janelia.org/eddylab/eddys/src/infernal/tags/${INFERNAL_VERSION}\ - -m "tagged 1.1 release, from 1.1 branch" + -m "tagged 1.1rc2 release, from 1.1 branch" svn copy https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1\ https://svn.janelia.org/eddylab/eddys/src/hmmer/tags/infernal/${INFERNAL_VERSION}\ - -m "tagged HMMER for Infernal 1.1 release, from Infernal 1.1 branch" + -m "tagged HMMER for Infernal 1.1rc2 release, from Infernal 1.1 branch" svn copy https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1\ https://svn.janelia.org/eddylab/eddys/easel/tags/infernal/${INFERNAL_VERSION}\ - -m "tagged Easel for Infernal 1.1 release, from Infernal 1.1 branch" + -m "tagged Easel for Infernal 1.1rc2 release, from Infernal 1.1 branch" 1.1rc1: svn 4131 hmmer:4132 easel:775 + 1.1rc2: svn 4343 hmmer:4344 easel:835 * Merge the branch's changes back to the trunk (This section is more verbose here than in the hmmer 00CHECKLIST. I @@ -641,7 +840,7 @@ macosx-intel build (on Sean's desktop): variable in the configure.ac files to i1.1rc1). Go back to working copies of the trunks and merge the release branches into it. - cd ~/src/infernal/trunk + cd ~/src/infernal svn update svn diff -r r4120:4130 https://svn.janelia.org/eddylab/eddys/src/infernal/branches/1.1 > tmp @@ -700,3 +899,4 @@ Release history 1.0.1 - SRE, Sat Oct 24 10:12:50 2009 r2997 Easel:r422 1.0.2 - SRE, Fri Oct 30 13:57:33 2009 r3022 Easel:r428 1.1rc1 - EPN, Wed Jun 27 22:02:39 2012 r4131 Easel:r775 +1.1rc2 - EPN, Fri Dec 14 15:04:24 2012 r4343 Easel:r835 From f7aa153453bb3f349478304adbde6301d44548a8 Mon Sep 17 00:00:00 2001 From: Eric Nawrocki Date: Mon, 17 Dec 2012 10:22:39 +0000 Subject: [PATCH 15/82] Added line to 00CHECKLIST to remind me to update the 'Last modified' bit of the Infernal website after a release -- which I forgot about for the 1.1rc2 release until this morning. git-svn-id: https://svn.janelia.org/eddylab/eddys/src/infernal/branches/1.1@4347 db3e70e4-12e1-0310-b23f-81a6e3d09ba7 --- release-notes/00CHECKLIST | 3 +++ 1 file changed, 3 insertions(+) diff --git a/release-notes/00CHECKLIST b/release-notes/00CHECKLIST index 17285283..e253043c 100644 --- a/release-notes/00CHECKLIST +++ b/release-notes/00CHECKLIST @@ -765,6 +765,9 @@ Copy macosx-intel tar ball to your laptop and test it. cd ~/web/infernal/ svn commit +Don't forget to update the 'Last modified' bit at the bottom +of index.html. + Update website with Rfam files (if current version of Rfam is not compatible with new version of Infernal, which was true for 1.1rc1 and 1.1rc2). From cee2eb0117d837dbf7237904a1b41bc488c69168 Mon Sep 17 00:00:00 2001 From: Eric Nawrocki Date: Fri, 19 Apr 2013 15:48:36 +0000 Subject: [PATCH 16/82] Fixed and logged bug i36. This is the first bug reported in Infernal 1.1rc2. BUGTRAX entry with explanation at end of this log. The actual fix is in cm_dpalign.c. cm_dpsearch.c, cm_dpsearch_trunc.c and cm_dpalign_trunc.c: adding check and enforcement that 'kn' is >= 0 during DP functions. Previously I thought this was always true, but bug i36 revealed it can be false in very rare situations. hmmband.c, cm_p7_band.c, cm_pipeline.c, infernal.h: modified the cp9_ValidateBands() function to take into account if the bands are for a truncated or non-truncated parsetree which changes what properties they must have to be 'valid'. This function is never actually called in infernal unless it is compiled with a debugging level >= 1. testsuite/*: tests for bug i36 and typo fix in bug-i34.pl BUGTRAX entry for i36: ID i36 TITLE Rare banded alignment traceback bifurcation offset bug STATUS CLOSED XREF Notes in ~nawrockie/notebook/13_0418_inf_zasha_banded_bug/00LOG REPORTED_BY Zasha Weinberg CLOSED_DATE EPN, Fri Apr 19 10:43:56 2013 DESCRIPTION In very rare cases, cmsearch was failing during a non-truncated HMM banded optimal accuracy alignment traceback. There is a single model for which this bug was observed, and it was reported by Zasha Weinberg. The problem occurs when tracing back at a BIF_B state where the z (BEGR_S child) state is either unreachable for any j, or unreachable for the current j due to hdmin/hdmax band being set as -1/-2. I thought at first the solution was to check for and catch this rare case during the traceback, but a cleaner solution (the one actually implemented) is to change the DP functions (cm_CYKInsideAlignHB() and cm_OptAccAlignHB()) so they put 'k' instead of 'kp_z' (for which kp_z = k - hdmin[z][jp_z]) into the kshadow DP matrix. This prevents the need of reconverting kp_z to k during the traceback. Since the bug occured at this reconversion step (b/c either jp_z or hdmin[z][jp_z] was invalid in the rare cases) this solved the problem and fixed the bug. (Storing k and not kp_z is the way the truncated versions of these functions were already implemented in cm_TrCYKInsideAlignHB() and cm_TrOptAccAlignHB()). This bug only occured when a B state had a parse subtree of length 0 underneath it and only for optimal accuracy (OA) parsetrees because OA parsetrees have the odd property that only emissions contribute to the score. This has the effect that what should be 'impossible' parsetrees due to the HMM bands become possible (and are sometimes optimal) because a subtree of length 0 does not contribute to the score, so effectively any subtree of length 0 is 'possible'. This is not problematic as long as it doesn't cause a failure downstream in the code because later code has assumed it won't happen (which is what happened in the case of this bug). This bug was fixed in the Infernal 1.1 release branch as of revision 4427. git-svn-id: https://svn.janelia.org/eddylab/eddys/src/infernal/branches/1.1@4427 db3e70e4-12e1-0310-b23f-81a6e3d09ba7 --- Bugs/BUGTRAX | 42 ++ src/cm_dpalign.c | 20 +- src/cm_dpalign_trunc.c | 3 + src/cm_dpsearch.c | 2 + src/cm_dpsearch_trunc.c | 2 + src/cm_p7_band.c | 2 +- src/cm_pipeline.c | 4 +- src/hmmband.c | 48 +- src/infernal.h | 2 +- testsuite/bug-i34.pl | 2 +- testsuite/bug-i36.cm | 1382 +++++++++++++++++++++++++++++++++++++++++++ testsuite/bug-i36.pl | 61 ++ testsuite/dev_testsuite.sqc | 1 + testsuite/testsuite.sqc | 1 + 14 files changed, 1543 insertions(+), 29 deletions(-) create mode 100644 testsuite/bug-i36.cm create mode 100644 testsuite/bug-i36.pl diff --git a/Bugs/BUGTRAX b/Bugs/BUGTRAX index d26152a4..411e4d11 100644 --- a/Bugs/BUGTRAX +++ b/Bugs/BUGTRAX @@ -1033,6 +1033,48 @@ explain exactly why. This bug was fixed in the Infernal 1.1 release branch as of revision 4338. // + #### #### 1.1rc2 release: 14 December 2012 #### + +ID i36 +TITLE Rare banded alignment traceback bifurcation offset bug +STATUS CLOSED +XREF Notes in ~nawrockie/notebook/13_0418_inf_zasha_banded_bug/00LOG +REPORTED_BY Zasha Weinberg +CLOSED_DATE EPN, Fri Apr 19 10:43:56 2013 +DESCRIPTION + +In very rare cases, cmsearch was failing during a non-truncated HMM +banded optimal accuracy alignment traceback. There is a single model +for which this bug was observed, and it was reported by Zasha +Weinberg. The problem occurs when tracing back at a BIF_B state where +the z (BEGR_S child) state is either unreachable for any j, or +unreachable for the current j due to hdmin/hdmax band being set as +-1/-2. I thought at first the solution was to check for and catch this +rare case during the traceback, but a cleaner solution (the one +actually implemented) is to change the DP functions +(cm_CYKInsideAlignHB() and cm_OptAccAlignHB()) so they put 'k' instead +of 'kp_z' (for which kp_z = k - hdmin[z][jp_z]) into the kshadow DP +matrix. This prevents the need of reconverting kp_z to k during the +traceback. Since the bug occured at this reconversion step (b/c either +jp_z or hdmin[z][jp_z] was invalid in the rare cases) this solved the +problem and fixed the bug. (Storing k and not kp_z is the way the +truncated versions of these functions were already implemented in +cm_TrCYKInsideAlignHB() and cm_TrOptAccAlignHB()). + +This bug only occured when a B state had a parse subtree of length 0 +underneath it and only for optimal accuracy (OA) parsetrees because OA +parsetrees have the odd property that only emissions contribute to the +score. This has the effect that what should be 'impossible' parsetrees +due to the HMM bands become possible (and are sometimes optimal) +because a subtree of length 0 does not contribute to the score, so +effectively any subtree of length 0 is 'possible'. This is not +problematic as long as it doesn't cause a failure downstream in the +code because later code has assumed it won't happen (which is what +happened in the case of this bug). + +This bug was fixed in the Infernal 1.1 release branch as of revision +4427. +// diff --git a/src/cm_dpalign.c b/src/cm_dpalign.c index aa606be3..e72eeb0b 100644 --- a/src/cm_dpalign.c +++ b/src/cm_dpalign.c @@ -276,11 +276,6 @@ cm_alignT_hb(CM_t *cm, char *errbuf, ESL_DSQ *dsq, int L, float size_limit, int int b; /* local begin state */ int jp_v; /* j-jmin[v] for current j, and current v */ int dp_v; /* d-hdmin[v][jp_v] for current j, current v, current d*/ - int jp_z; /* j-jmin[z] for current j, and current z */ - int kp_z; /* the k value (d dim) from the shadow matrix - * giving the len of right fragment offset in deck z, - * k = kp_z + hdmin[z][jp_z] - */ int allow_S_local_end; /* set to true to allow d==0 BEGL_S and BEGR_S local ends if(do_optacc) */ /* pointers to cp9b data for convenience */ @@ -344,10 +339,8 @@ cm_alignT_hb(CM_t *cm, char *errbuf, ESL_DSQ *dsq, int L, float size_limit, int } if (cm->sttype[v] == B_st) { - kp_z = shmx->kshadow[v][jp_v][dp_v]; /* kp_z = offset len of right fragment */ - z = cm->cnum[v]; - jp_z = j-jmin[z]; - k = kp_z + hdmin[z][jp_z]; /* k = offset len of right fragment */ + k = shmx->kshadow[v][jp_v][dp_v]; /* k = offset len of right fragment */ + z = cm->cnum[v]; /* Store info about the right fragment that we'll retrieve later: */ @@ -1402,7 +1395,8 @@ cm_CYKInsideAlignHB(CM_t *cm, char *errbuf, ESL_DSQ *dsq, int L, float size_lim jp_y = j - jmin[y]; jp_z = j - jmin[z]; kn = ((j-jmax[y]) > (hdmin[z][jp_z])) ? (j-jmax[y]) : hdmin[z][jp_z]; - /* kn satisfies inequalities (1) and (3) (listed below)*/ + kn = ESL_MAX(kn, 0); /* kn must be non-negative, added with fix to bug i36 */ + /* kn satisfies inequalities (1) and (3) (listed below)*/ kx = ( jp_y < (hdmax[z][jp_z])) ? jp_y : hdmax[z][jp_z]; /* kn satisfies inequalities (2) and (4) (listed below)*/ for (d = hdmin[v][jp_v]; d <= hdmax[v][jp_v]; d++) { @@ -1443,7 +1437,7 @@ cm_CYKInsideAlignHB(CM_t *cm, char *errbuf, ESL_DSQ *dsq, int L, float size_lim if ((sc = alpha[y][jp_y-k][dp_y - k] + alpha[z][jp_z][kp_z]) > alpha[v][jp_v][dp_v]) { alpha[v][jp_v][dp_v] = sc; - kshadow[v][jp_v][dp_v] = kp_z; + kshadow[v][jp_v][dp_v] = k; } } } @@ -2030,6 +2024,7 @@ cm_InsideAlignHB(CM_t *cm, char *errbuf, ESL_DSQ *dsq, int L, float size_limit, jp_y = j - jmin[y]; jp_z = j - jmin[z]; kn = ((j-jmax[y]) > (hdmin[z][jp_z])) ? (j-jmax[y]) : hdmin[z][jp_z]; + kn = ESL_MAX(kn, 0); /* kn must be non-negative, added with fix to bug i36 */ /* kn satisfies inequalities (1) and (3) (listed below)*/ kx = ( jp_y < (hdmax[z][jp_z])) ? jp_y : hdmax[z][jp_z]; /* kn satisfies inequalities (2) and (4) (listed below)*/ @@ -2793,6 +2788,7 @@ cm_OptAccAlignHB(CM_t *cm, char *errbuf, ESL_DSQ *dsq, int L, float size_limit, jp_y = j - jmin[y]; jp_z = j - jmin[z]; kn = ((j-jmax[y]) > (hdmin[z][jp_z])) ? (j-jmax[y]) : hdmin[z][jp_z]; + kn = ESL_MAX(kn, 0); /* kn must be non-negative, added with fix to bug i36 */ /* kn satisfies inequalities (1) and (3) (listed below)*/ kx = ( jp_y < (hdmax[z][jp_z])) ? jp_y : hdmax[z][jp_z]; /* kn satisfies inequalities (2) and (4) (listed below)*/ @@ -2839,7 +2835,7 @@ cm_OptAccAlignHB(CM_t *cm, char *errbuf, ESL_DSQ *dsq, int L, float size_limit, ((k == 0) || (NOT_IMPOSSIBLE(alpha[z][jp_z][kp_z])))) /* right subtree can only be IMPOSSIBLE if it has length 0 (in which case k==0) */ { alpha[v][jp_v][dp_v] = sc; - kshadow[v][jp_v][dp_v] = kp_z; + kshadow[v][jp_v][dp_v] = k; /* Note: we take the logsum here, because we're * keeping track of the log of the summed probability * of emitting all residues up to this point, (from diff --git a/src/cm_dpalign_trunc.c b/src/cm_dpalign_trunc.c index c010d94b..41746efd 100644 --- a/src/cm_dpalign_trunc.c +++ b/src/cm_dpalign_trunc.c @@ -2606,6 +2606,7 @@ cm_TrCYKInsideAlignHB(CM_t *cm, char *errbuf, ESL_DSQ *dsq, int L, float size_l jp_y = j - jmin[y]; jp_z = j - jmin[z]; kn = ((j-jmax[y]) > (hdmin[z][jp_z])) ? (j-jmax[y]) : hdmin[z][jp_z]; + kn = ESL_MAX(kn, 0); /* kn must be non-negative, added with fix to bug i36 */ /* kn satisfies inequalities (1) and (3) (listed below)*/ kx = ( jp_y < (hdmax[z][jp_z])) ? jp_y : hdmax[z][jp_z]; /* kn satisfies inequalities (2) and (4) (listed below)*/ @@ -4027,6 +4028,7 @@ cm_TrInsideAlignHB(CM_t *cm, char *errbuf, ESL_DSQ *dsq, int L, float size_limit jp_y = j - jmin[y]; jp_z = j - jmin[z]; kn = ((j-jmax[y]) > (hdmin[z][jp_z])) ? (j-jmax[y]) : hdmin[z][jp_z]; + kn = ESL_MAX(kn, 0); /* kn must be non-negative, added with fix to bug i36 */ /* kn satisfies inequalities (1) and (3) (listed below)*/ kx = ( jp_y < (hdmax[z][jp_z])) ? jp_y : hdmax[z][jp_z]; /* kn satisfies inequalities (2) and (4) (listed below)*/ @@ -5807,6 +5809,7 @@ cm_TrOptAccAlignHB(CM_t *cm, char *errbuf, ESL_DSQ *dsq, int L, float size_limit jp_y = j - jmin[y]; jp_z = j - jmin[z]; kn = ((j-jmax[y]) > (hdmin[z][jp_z])) ? (j-jmax[y]) : hdmin[z][jp_z]; + kn = ESL_MAX(kn, 0); /* kn must be non-negative, added with fix to bug i36 */ /* kn satisfies inequalities (1) and (3) (listed below)*/ kx = ( jp_y < (hdmax[z][jp_z])) ? jp_y : hdmax[z][jp_z]; /* kn satisfies inequalities (2) and (4) (listed below)*/ diff --git a/src/cm_dpsearch.c b/src/cm_dpsearch.c index b04a44f0..dc9bc1d8 100644 --- a/src/cm_dpsearch.c +++ b/src/cm_dpsearch.c @@ -3567,6 +3567,7 @@ FastCYKScanHB(CM_t *cm, char *errbuf, CM_HB_MX *mx, float size_limit, ESL_DSQ *d jp_y = j - jmin[y]; jp_z = j - jmin[z]; kn = ((j-jmax[y]) > (hdmin[z][jp_z])) ? (j-jmax[y]) : hdmin[z][jp_z]; + kn = ESL_MAX(kn, 0); /* kn must be non-negative, added with fix to bug i36 */ /* kn satisfies inequalities (1) and (3) (listed below)*/ kx = ( jp_y < (hdmax[z][jp_z])) ? jp_y : hdmax[z][jp_z]; /* kn satisfies inequalities (2) and (4) (listed below)*/ @@ -4080,6 +4081,7 @@ FastFInsideScanHB(CM_t *cm, char *errbuf, CM_HB_MX *mx, float size_limit, ESL_DS jp_y = j - jmin[y]; jp_z = j - jmin[z]; kn = ((j-jmax[y]) > (hdmin[z][jp_z])) ? (j-jmax[y]) : hdmin[z][jp_z]; + kn = ESL_MAX(kn, 0); /* kn must be non-negative, added with fix to bug i36 */ /* kn satisfies inequalities (1) and (3) (listed below)*/ kx = ( jp_y < (hdmax[z][jp_z])) ? jp_y : hdmax[z][jp_z]; /* kn satisfies inequalities (2) and (4) (listed below)*/ diff --git a/src/cm_dpsearch_trunc.c b/src/cm_dpsearch_trunc.c index f08c513f..0b6996ea 100644 --- a/src/cm_dpsearch_trunc.c +++ b/src/cm_dpsearch_trunc.c @@ -2057,6 +2057,7 @@ TrCYKScanHB(CM_t *cm, char *errbuf, CM_TR_HB_MX *mx, float size_limit, int pass_ jp_y = j - jmin[y]; jp_z = j - jmin[z]; kn = ((j-jmax[y]) > (hdmin[z][jp_z])) ? (j-jmax[y]) : hdmin[z][jp_z]; + kn = ESL_MAX(kn, 0); /* kn must be non-negative, added with fix to bug i36 */ /* kn satisfies inequalities (1) and (3) (listed below)*/ kx = ( jp_y < (hdmax[z][jp_z])) ? jp_y : hdmax[z][jp_z]; /* kn satisfies inequalities (2) and (4) (listed below)*/ @@ -3172,6 +3173,7 @@ FTrInsideScanHB(CM_t *cm, char *errbuf, CM_TR_HB_MX *mx, float size_limit, int p jp_y = j - jmin[y]; jp_z = j - jmin[z]; kn = ((j-jmax[y]) > (hdmin[z][jp_z])) ? (j-jmax[y]) : hdmin[z][jp_z]; + kn = ESL_MAX(kn, 0); /* kn must be non-negative, added with fix to bug i36 */ /* kn satisfies inequalities (1) and (3) (listed below)*/ kx = ( jp_y < (hdmax[z][jp_z])) ? jp_y : hdmax[z][jp_z]; /* kn satisfies inequalities (2) and (4) (listed below)*/ diff --git a/src/cm_p7_band.c b/src/cm_p7_band.c index 24193f24..a7ae2166 100644 --- a/src/cm_p7_band.c +++ b/src/cm_p7_band.c @@ -1828,7 +1828,7 @@ cp9_Seq2BandsP7B(CM_t *cm, char *errbuf, CP9_MX *fmx, CP9_MX *bmx, CP9_MX *pmx, ij2d_bands(cm, L, cp9b->imin, cp9b->imax, cp9b->jmin, cp9b->jmax, cp9b->hdmin, cp9b->hdmax, FALSE, debug_level); #if eslDEBUGLEVEL >= 1 - if((status = cp9_ValidateBands(cm, errbuf, cp9b, 1, L)) != eslOK) return status; + if((status = cp9_ValidateBands(cm, errbuf, cp9b, 1, L, FALSE)) != eslOK) return status; ESL_DPRINTF1(("bands validated.\n")); #endif if(debug_level > 0) debug_print_ij_bands(cm); diff --git a/src/cm_pipeline.c b/src/cm_pipeline.c index c686c890..b18b252d 100644 --- a/src/cm_pipeline.c +++ b/src/cm_pipeline.c @@ -3331,9 +3331,9 @@ pli_final_stage(CM_PIPELINE *pli, off_t cm_offset, const ESL_SQ *sq, int64_t *es scan_cp9b = cp9_CloneBands(cm->cp9b, pli->errbuf); if(scan_cp9b == NULL) return eslEMEM; #if eslDEBUGLEVEL >= 1 - if((status = cp9_ValidateBands(cm, pli->errbuf, cm->cp9b, es[i], ee[i])) != eslOK) return status; + if((status = cp9_ValidateBands(cm, pli->errbuf, cm->cp9b, es[i], ee[i], cm_pli_PassAllowsTruncation(pli->cur_pass_idx))) != eslOK) return status; ESL_DPRINTF1(("original bands validated.\n")); - if((status = cp9_ValidateBands(cm, pli->errbuf, scan_cp9b, es[i], ee[i])) != eslOK) return status; + if((status = cp9_ValidateBands(cm, pli->errbuf, scan_cp9b, es[i], ee[i], cm_pli_PassAllowsTrunction(pli->cur_pass_idx)) != eslOK) return status; ESL_DPRINTF1(("cloned bands validated.\n")); #endif } diff --git a/src/hmmband.c b/src/hmmband.c index 79675935..3b5fc739 100644 --- a/src/hmmband.c +++ b/src/hmmband.c @@ -358,7 +358,7 @@ cp9_Seq2Bands(CM_t *cm, char *errbuf, CP9_MX *fmx, CP9_MX *bmx, CP9_MX *pmx, ESL ij2d_bands(cm, (j0-i0+1), cp9b->imin, cp9b->imax, cp9b->jmin, cp9b->jmax, cp9b->hdmin, cp9b->hdmax, do_trunc, debug_level); #if eslDEBUGLEVEL >= 1 - if((status = cp9_ValidateBands(cm, errbuf, cp9b, i0, j0)) != eslOK) return status; + if((status = cp9_ValidateBands(cm, errbuf, cp9b, i0, j0, do_trunc)) != eslOK) return status; ESL_DPRINTF1(("bands validated.\n")); #endif if(debug_level > 0) debug_print_ij_bands(cm); @@ -1234,11 +1234,13 @@ cp9_IFillPostSums(CP9_MX *post, CP9Bands_t *cp9b, int i0, int j0) * Returns: eslOK, or, if error, other status code and filled errbuf */ int -cp9_ValidateBands(CM_t *cm, char *errbuf, CP9Bands_t *cp9b, int i0, int j0) +cp9_ValidateBands(CM_t *cm, char *errbuf, CP9Bands_t *cp9b, int i0, int j0, int do_trunc) { int v; /* counter over states of the CM */ int jp; /* counter over valid j's, but offset. jp+jmin[v] = actual j */ int sd; /* minimum d allowed for a state, ex: MP_st = 2, ML_st = 1. etc. */ + int max_sdl_sdr; /* maximum of StateLeftDelta, StateRightDelta for a state */ + int dn; /* max_sdl_sdr if do_trunc, else sd */ int hd_needed; int j; @@ -1253,14 +1255,27 @@ cp9_ValidateBands(CM_t *cm, char *errbuf, CP9Bands_t *cp9b, int i0, int j0) if(hd_needed != cp9b->hd_needed) ESL_FAIL(eslEINVAL, errbuf, "cp9_ValidateBands(), cp9b->hd_needed inconsistent."); for(v = 0; v < cm->M; v++) { - sd = StateDelta(cm->sttype[v]); + sd = StateDelta(cm->sttype[v]); + max_sdl_sdr = ESL_MAX(StateLeftDelta(cm->sttype[v]), StateRightDelta(cm->sttype[v])); + dn = do_trunc ? max_sdl_sdr : sd; + /* if (do_trunc) d can be 1 for MP states, this is why we use dn + * here. Note: d can't be 0 for ML/IL in R mode, MR/IR in L + * mode even though you might think it could be. We'll always do + * a truncated begin with d=1 for L,R marginal alignments. */ if(cp9b->jmin[v] != -1) { - if(cp9b->jmin[v] < sd) ESL_FAIL(eslEINVAL, errbuf, "cp9_ValidateBands(), cp9b->jmin[v:%d]: %d < StateDelta[v]: %d.\n", v, cp9b->jmin[v], sd); - if(cp9b->jmax[v] < sd) ESL_FAIL(eslEINVAL, errbuf, "cp9_ValidateBands(), cp9b->jmax[v:%d]: %d < StateDelta[v]: %d.\n", v, cp9b->jmax[v], sd); + if(cp9b->jmin[v] < dn) ESL_FAIL(eslEINVAL, errbuf, "cp9_ValidateBands(), cp9b->jmin[v:%d]: %d < StateDelta[v]: %d.\n", v, cp9b->jmin[v], dn); + if(cp9b->jmax[v] < dn) ESL_FAIL(eslEINVAL, errbuf, "cp9_ValidateBands(), cp9b->jmax[v:%d]: %d < StateDelta[v]: %d.\n", v, cp9b->jmax[v], dn); } } for(v = 0; v < cm->M; v++) { + sd = StateDelta(cm->sttype[v]); + max_sdl_sdr = ESL_MAX(StateLeftDelta(cm->sttype[v]), StateRightDelta(cm->sttype[v])); + dn = do_trunc ? max_sdl_sdr : sd; + /* if (do_trunc) d can be 1 for MP states, this is why we use dn + * here. Note: d can't be 0 for ML/IL in R mode, MR/IR in L + * mode even though you might think it could be. We'll always do + * a truncated begin with d=1 for L,R marginal alignments. */ if(cm->sttype[v] == E_st) { for(jp = 0; jp <= (cp9b->jmax[v]-cp9b->jmin[v]); jp++) { if(cp9b->hdmin[v][jp] != 0) ESL_FAIL(eslEINVAL, errbuf, "cp9_ValidateBands(), cp9b->hdmin for E state is inconsistent."); @@ -1268,13 +1283,17 @@ cp9_ValidateBands(CM_t *cm, char *errbuf, CP9Bands_t *cp9b, int i0, int j0) } } else { - sd = StateDelta(cm->sttype[v]); if(cp9b->jmin[v] != -1) { for(jp = 0; jp <= (cp9b->jmax[v]-cp9b->jmin[v]); jp++) { j = jp+cp9b->jmin[v]; - if(cp9b->hdmin[v][jp] != ESL_MAX((j - cp9b->imax[v] + 1), sd)) ESL_FAIL(eslEINVAL, errbuf, "cp9_ValidateBands(), cp9b->hdmin %d (sd: %d) for state %d, j: %d imax[v]: %d is inconsistent.", cp9b->hdmin[v][jp], sd, v, j, cp9b->imax[v]); - if(cp9b->hdmax[v][jp] != ESL_MAX((j - cp9b->imin[v] + 1), sd)) ESL_FAIL(eslEINVAL, errbuf, "cp9_ValidateBands(), cp9b->hdmax %d (sd: %d) for state %d, j: %d imin[v]: %d is inconsistent.", cp9b->hdmax[v][jp], sd, v, j, cp9b->imin[v]); - } + if(cp9b->hdmin[v][jp] == -1) { + if(cp9b->hdmax[v][jp] != -2) { ESL_FAIL(eslEINVAL, errbuf, "cp9_ValidateBands(), cp9b->hdmin is -1 for state %d, j: %d, but hdmax is not -2 (it's %d).", v, j, cp9b->hdmax[v][jp]); } + } + else { + if(cp9b->hdmin[v][jp] != ESL_MAX((j - cp9b->imax[v] + 1), dn)) ESL_FAIL(eslEINVAL, errbuf, "cp9_ValidateBands(), cp9b->hdmin %d (dn: %d) for state %d, j: %d imax[v]: %d is inconsistent.", cp9b->hdmin[v][jp], dn, v, j, cp9b->imax[v]); + if(cp9b->hdmax[v][jp] != ESL_MAX((j - cp9b->imin[v] + 1), dn)) ESL_FAIL(eslEINVAL, errbuf, "cp9_ValidateBands(), cp9b->hdmax %d (dn: %d) for state %d, j: %d imin[v]: %d is inconsistent.", cp9b->hdmax[v][jp], dn, v, j, cp9b->imin[v]); + } + } } } /* get rid of StateIsDetached once old band construction method is deprecated */ @@ -1300,9 +1319,14 @@ cp9_ValidateBands(CM_t *cm, char *errbuf, CP9Bands_t *cp9b, int i0, int j0) for(j = cp9b->jmin[v]; j <= cp9b->jmax[v]; j++) { if(j < (i0-1)) ESL_FAIL(eslEINVAL, errbuf, "cp9_ValidateBands(), j: %d outside i0-1:%d..j0:%d is within v's j band: jmin[%d]: %d jmax[%d]: %d\n", j, i0-1, j0, v, cp9b->jmin[v], v, cp9b->jmax[v]); if(j > j0) ESL_FAIL(eslEINVAL, errbuf, "cp9_ValidateBands(), j: %d outside i0-1:%d..j0:%d is within v's j band: jmin[%d]: %d jmax[%d]: %d\n", j, i0-1, j0, v, cp9b->jmin[v], v, cp9b->jmax[v]); - if(cp9b->hdmin[v][(j-cp9b->jmin[v])] < StateDelta(cm->sttype[v])) ESL_FAIL(eslEINVAL, errbuf, "cp9_ValidateBands(), v: %d j: %d hdmin[v][jp_v:%d] : %d less than StateDelta for v: %d\n", v, j, (j-cp9b->jmin[v]), cp9b->hdmin[v][(j-cp9b->jmin[v])], StateDelta(cm->sttype[v])); - if(cp9b->hdmax[v][(j-cp9b->jmin[v])] < StateDelta(cm->sttype[v])) ESL_FAIL(eslEINVAL, errbuf, "cp9_ValidateBands(), v: %d j: %d hdmax[v][jp_v:%d] : %d less than StateDelta for v: %d\n", v, j, (j-cp9b->jmin[v]), cp9b->hdmax[v][(j-cp9b->jmin[v])], StateDelta(cm->sttype[v])); - } + if(cp9b->hdmin[v][(j-cp9b->jmin[v])] == -1) { + if(cp9b->hdmax[v][(j-cp9b->jmin[v])] != -2) ESL_FAIL(eslEINVAL, errbuf, "cp9_ValidateBands(), v: %d j: %d hdmin[v][jp_v:%d] == -1, but hdmax[v][jp_v:%d] != -2 (it's %d)\n", v, j, (j-cp9b->jmin[v]), (j-cp9b->jmin[v]), cp9b->hdmax[v][(j-cp9b->jmin[v])]); + } + else { + if(cp9b->hdmin[v][(j-cp9b->jmin[v])] < dn) ESL_FAIL(eslEINVAL, errbuf, "cp9_ValidateBands(), v: %d j: %d hdmin[v][jp_v:%d] : %d less than StateDelta for v: %d\n", v, j, (j-cp9b->jmin[v]), cp9b->hdmin[v][(j-cp9b->jmin[v])], dn); + if(cp9b->hdmax[v][(j-cp9b->jmin[v])] < dn) ESL_FAIL(eslEINVAL, errbuf, "cp9_ValidateBands(), v: %d j: %d hdmax[v][jp_v:%d] : %d less than StateDelta for v: %d\n", v, j, (j-cp9b->jmin[v]), cp9b->hdmax[v][(j-cp9b->jmin[v])], dn); + } + } if(cp9b->jmax[v] > cp9b->jmax[0]) ESL_FAIL(eslEINVAL, errbuf, "cp9_ValidateBands(), jmax[v:%d]:%d > jmax[0]:%d.", v, cp9b->jmax[v], cp9b->jmax[0]); if(cp9b->imin[v] < cp9b->imin[0]) ESL_FAIL(eslEINVAL, errbuf, "cp9_ValidateBands(), imin[v:%d]:%d < imin[0]:%d, i0:%d j0:%d jmin[v]:%d jmax[v]:%d jmin[0]:%d jmax[0]:%d imax[v]:%d", v, cp9b->imin[v], cp9b->imin[0], i0, j0, cp9b->jmin[v], cp9b->jmax[v], cp9b->jmin[0], cp9b->jmax[0], cp9b->imax[v]); } diff --git a/src/infernal.h b/src/infernal.h index 14ad05ec..7dfcbb3c 100644 --- a/src/infernal.h +++ b/src/infernal.h @@ -3173,7 +3173,7 @@ extern int cp9_IterateSeq2Bands(CM_t *cm, char *errbuf, ESL_DSQ *dsq, i extern int cp9_Seq2Posteriors(CM_t *cm, char *errbuf, CP9_MX *fmx, CP9_MX *bmx, CP9_MX *pmx, ESL_DSQ *dsq, int i0, int j0, int debug_level); extern void cp9_DebugPrintHMMBands(FILE *ofp, int L, CP9Bands_t *cp9b, double hmm_bandp, int debug_level); extern int cp9_GrowHDBands(CP9Bands_t *cp9b, char *errbuf); -extern int cp9_ValidateBands(CM_t *cm, char *errbuf, CP9Bands_t *cp9b, int i0, int j0); +extern int cp9_ValidateBands(CM_t *cm, char *errbuf, CP9Bands_t *cp9b, int i0, int j0, int do_trunc); extern void cp9_ShiftCMBands(CM_t *cm, int i, int j, int do_trunc); extern CP9Bands_t *cp9_CloneBands(CP9Bands_t *src_cp9b, char *errbuf); extern void cp9_PredictStartAndEndPositions(CP9_MX *pmx, CP9Bands_t *cp9b, int i0, int j0); diff --git a/testsuite/bug-i34.pl b/testsuite/bug-i34.pl index cc4708d9..6a8efef9 100644 --- a/testsuite/bug-i34.pl +++ b/testsuite/bug-i34.pl @@ -54,7 +54,7 @@ END } -foreach $tmpfile ("i33.1") { +foreach $tmpfile ("i34.1") { unlink $tmpfile if -e $tmpfile; } if ($ok) { print "ok\n"; exit 0; } diff --git a/testsuite/bug-i36.cm b/testsuite/bug-i36.cm new file mode 100644 index 00000000..415fdccd --- /dev/null +++ b/testsuite/bug-i36.cm @@ -0,0 +1,1382 @@ +INFERNAL1/a [1.1rc2 | December 2012] +NAME input +STATES 595 +NODES 170 +CLEN 187 +W 206 +ALPH RNA +RF no +CONS yes +MAP yes +DATE Tue Apr 16 22:15:26 2013 +COM [1] /home/zw49/software/local/infernal1.1/bin/cmbuild -F /tmp/zw49/compute-2-8.local-2508-bigstep/per-work-unit/input.cm /tmp/zw49/compute-2-8.local-2508-bigstep/per-work-unit/input.sto +COM [2] /home/zw49/software/local/infernal1.1/bin/cmcalibrate --cpu 2 /tmp/zw49/compute-2-8.local-2508-bigstep/per-work-unit/input.cm +PBEGIN 0.05 +PEND 0.05 +WBETA 1e-07 +QDBBETA1 1e-07 +QDBBETA2 1e-15 +N2OMEGA 1.52588e-05 +N3OMEGA 1.52588e-05 +ELSELF -0.08926734 +NSEQ 6 +EFFN 1.549805 +CKSUM 2893177742 +NULL 0.000 0.000 0.000 0.000 +EFP7GF -5.2577 0.71371 +ECMLC 0.77752 -7.77612 -0.22456 1600000 425717 0.002819 +ECMGC 0.33334 -28.30156 -17.90466 1600000 12800 0.031250 +ECMLI 0.70313 -8.04253 0.14379 1600000 379322 0.003164 +ECMGI 0.38108 -16.90391 -7.82211 1600000 12738 0.031402 +CM + [ ROOT 0 ] - - - - - - + S 0 -1 0 1 4 0 0 206 229 -6.783 -6.990 -0.208 -3.089 + IL 1 1 2 1 4 51 102 209 232 -1.686 -2.369 -1.117 -4.855 0.000 0.000 0.000 0.000 + IR 2 2 3 2 3 51 101 208 231 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 1 ] 1 - C - - - + ML 3 2 3 5 3 51 101 206 229 -7.682 -0.025 -6.336 -1.086 1.386 -1.877 -0.636 + D 4 2 3 5 3 45 95 204 226 -6.956 -2.469 -0.302 + IL 5 5 3 5 3 50 101 207 230 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 2 ] 2 - u - - - + ML 6 5 3 8 3 51 100 205 228 -7.682 -0.025 -6.336 0.085 0.074 -0.949 0.453 + D 7 5 3 8 3 44 94 203 225 -6.956 -2.469 -0.302 + IL 8 8 3 8 3 50 100 206 229 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 3 ] 3 - c - - - + ML 9 8 3 11 3 50 99 204 227 -7.682 -0.025 -6.336 -0.506 0.536 -1.264 0.516 + D 10 8 3 11 3 44 94 202 224 -6.956 -2.469 -0.302 + IL 11 11 3 11 3 49 99 205 228 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 4 ] 4 - C - - - + ML 12 11 3 14 3 49 99 203 225 -7.682 -0.025 -6.336 -1.086 1.386 -1.877 -0.636 + D 13 11 3 14 3 43 93 201 223 -6.956 -2.469 -0.302 + IL 14 14 3 14 3 49 98 204 227 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 5 ] 5 - U - - - + ML 15 14 3 17 3 49 98 202 224 -7.682 -0.025 -6.336 -0.985 -1.074 -1.687 1.438 + D 16 14 3 17 3 43 93 200 222 -6.956 -2.469 -0.302 + IL 17 17 3 17 3 48 98 203 226 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 6 ] 6 - g - - - + ML 18 17 3 20 3 48 97 201 223 -7.682 -0.025 -6.336 -0.254 -0.898 0.541 0.226 + D 19 17 3 20 3 43 92 199 221 -6.956 -2.469 -0.302 + IL 20 20 3 20 3 47 97 202 225 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 7 ] 7 - g - - - + ML 21 20 3 23 3 47 96 200 222 -7.682 -0.025 -6.336 0.102 -1.369 0.963 -0.762 + D 22 20 3 23 3 42 91 198 220 -6.956 -2.469 -0.302 + IL 23 23 3 23 3 47 96 201 224 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 8 ] 8 - A - - - + ML 24 23 3 26 3 46 95 199 221 -8.092 -0.022 -6.410 1.070 -1.219 -0.257 -0.657 + D 25 23 3 26 3 42 91 197 220 -6.144 -1.257 -0.817 + IL 26 26 3 26 3 46 95 200 222 -1.925 -0.554 -4.164 0.000 0.000 0.000 0.000 + [ MATR 9 ] - 192 - U - - + MR 27 26 3 29 3 46 94 198 220 -8.092 -0.022 -6.410 -0.985 -1.074 -1.687 1.438 + D 28 26 3 29 3 41 90 196 218 -7.073 -2.251 -0.354 + IR 29 29 3 29 3 45 94 199 221 -1.925 -0.554 -4.164 0.000 0.000 0.000 0.000 + [ MATR 10 ] - 191 - c - - + MR 30 29 3 32 3 45 93 197 219 -8.092 -0.022 -6.410 0.003 0.364 -1.007 0.279 + D 31 29 3 32 3 40 89 195 217 -7.073 -2.251 -0.354 + IR 32 32 3 32 3 45 93 198 220 -1.925 -0.554 -4.164 0.000 0.000 0.000 0.000 + [ MATR 11 ] - 190 - u - - + MR 33 32 3 35 3 44 92 196 218 -8.092 -0.022 -6.410 0.105 -0.728 0.024 0.383 + D 34 32 3 35 3 40 88 194 216 -7.073 -2.251 -0.354 + IR 35 35 3 35 3 44 92 197 219 -1.925 -0.554 -4.164 0.000 0.000 0.000 0.000 + [ MATR 12 ] - 189 - A - - + MR 36 35 3 38 3 43 91 195 217 -8.092 -0.022 -6.410 1.145 -1.260 -0.399 -0.707 + D 37 35 3 38 3 39 88 193 215 -7.073 -2.251 -0.354 + IR 38 38 3 38 3 43 91 196 218 -1.925 -0.554 -4.164 0.000 0.000 0.000 0.000 + [ MATR 13 ] - 188 - u - - + MR 39 38 3 41 3 42 90 194 216 -8.092 -0.022 -6.410 -0.085 -0.725 -1.093 0.988 + D 40 38 3 41 3 39 88 192 214 -7.073 -2.251 -0.354 + IR 41 41 3 41 3 42 91 195 217 -1.925 -0.554 -4.164 0.000 0.000 0.000 0.000 + [ MATR 14 ] - 187 - G - - + MR 42 41 3 44 3 41 90 193 215 -8.092 -0.022 -6.410 -0.981 -2.096 1.537 -1.481 + D 43 41 3 44 3 39 87 191 213 -7.073 -2.251 -0.354 + IR 44 44 3 44 3 41 90 194 216 -1.925 -0.554 -4.164 0.000 0.000 0.000 0.000 + [ MATR 15 ] - 186 - a - - + MR 45 44 3 47 3 40 89 192 214 -8.092 -0.022 -6.410 0.812 -1.156 0.166 -0.570 + D 46 44 3 47 3 38 87 190 213 -7.073 -2.251 -0.354 + IR 47 47 3 47 3 40 89 193 215 -1.925 -0.554 -4.164 0.000 0.000 0.000 0.000 + [ MATR 16 ] - 185 - G - - + MR 48 47 3 50 2 39 88 191 213 -8.010 -0.006 -0.027 -1.443 1.063 -0.834 + D 49 47 3 50 2 38 87 190 212 -5.139 -0.042 + IR 50 50 3 50 2 40 88 192 214 -1.823 -0.479 0.000 0.000 0.000 0.000 + [ BIF 17 ] - - - - - - + B 51 50 3 52 346 38 87 190 212 + [ BEGL 18 ] - - - - - - + S 52 51 1 53 1 2 31 112 134 0.000 + [ BIF 19 ] - - - - - - + B 53 52 1 168 54 2 31 112 134 + [ BEGR 76 ] - - - - - - + S 54 53 1 55 3 0 0 52 72 -7.812 -0.023 -6.466 + IL 55 55 2 55 3 1 1 56 75 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 77 ] 68 - u - - - + ML 56 55 2 58 3 1 1 52 71 -7.812 -0.131 -3.602 0.039 -0.721 -0.457 0.711 + D 57 55 2 58 3 0 0 51 70 -6.174 -1.687 -0.566 + IL 58 58 3 58 3 1 1 55 74 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 78 ] 69 - G - - - + ML 59 58 3 61 3 1 1 51 70 -7.706 -0.025 -6.360 -1.031 -2.156 1.557 -1.540 + D 60 58 3 61 3 0 0 50 69 -6.844 -2.357 -0.329 + IL 61 61 3 61 3 1 1 54 73 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 79 ] 70 - A - - - + ML 62 61 3 64 3 1 1 50 69 -7.706 -0.025 -6.360 1.070 -0.576 -0.999 -0.455 + D 63 61 3 64 3 0 0 49 68 -6.844 -2.357 -0.329 + IL 64 64 3 64 3 1 1 53 72 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 80 ] 71 - g - - - + ML 65 64 3 67 3 1 1 49 68 -7.706 -0.025 -6.360 0.073 -1.407 0.998 -0.801 + D 66 64 3 67 3 0 0 47 67 -6.844 -2.357 -0.329 + IL 67 67 3 67 3 1 1 51 71 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 81 ] 72 - U - - - + ML 68 67 3 70 5 1 1 48 67 -3.696 -0.152 -6.686 -6.898 -7.790 -1.026 -1.107 -1.731 1.456 + D 69 67 3 70 5 0 0 46 65 -5.374 -1.218 -4.635 -3.010 -1.390 + IL 70 70 3 70 5 1 1 48 67 -2.629 -0.415 -4.308 -6.140 -5.413 0.000 0.000 0.000 0.000 + [ MATP 82 ] 74 106 c g - - + MP 71 70 3 75 6 2 2 47 66 -9.007 -8.946 -0.023 -7.723 -8.002 -8.397 -2.671 -2.607 -2.753 0.745 -2.242 -3.482 2.592 -2.764 -0.331 1.011 -3.256 -0.798 1.333 -2.925 -0.077 -1.799 + ML 72 70 3 75 6 1 1 45 64 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 73 70 3 75 6 1 1 45 64 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094 + D 74 70 3 75 6 0 0 43 61 -9.580 -8.278 -4.075 -4.757 -4.775 -0.213 + IL 75 75 5 75 6 1 1 47 65 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 76 76 6 76 5 1 1 46 65 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 83 ] 75 105 C G - - + MP 77 76 6 81 6 2 2 45 64 -9.007 -8.946 -0.023 -7.723 -8.002 -8.397 -4.046 -3.900 -3.816 -0.185 -2.657 -4.292 3.358 -3.414 -3.853 0.144 -4.164 -1.842 0.902 -4.145 -0.356 -2.712 + ML 78 76 6 81 6 1 1 43 62 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 79 76 6 81 6 1 1 43 62 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094 + D 80 76 6 81 6 0 0 41 59 -9.580 -8.278 -4.075 -4.757 -4.775 -0.213 + IL 81 81 5 81 6 1 1 45 63 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 82 82 6 82 5 1 1 44 63 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 84 ] 76 104 C G - - + MP 83 82 6 87 6 2 2 43 62 -9.007 -8.946 -0.023 -7.723 -8.002 -8.397 -3.391 -3.415 -3.349 0.132 -0.152 -3.974 3.095 -3.161 -3.386 0.313 -3.802 -1.569 1.091 -3.587 -0.255 -2.335 + ML 84 82 6 87 6 1 1 41 60 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 85 82 6 87 6 1 1 41 60 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094 + D 86 82 6 87 6 0 0 39 58 -9.580 -8.278 -4.075 -4.757 -4.775 -0.213 + IL 87 87 5 87 6 1 1 43 61 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 88 88 6 88 5 1 1 42 61 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 85 ] 77 103 c g - - + MP 89 88 6 93 6 2 2 41 60 -9.007 -8.946 -0.067 -7.723 -8.002 -4.937 -3.067 -2.887 -3.081 0.725 -2.394 -3.788 2.452 -2.968 -3.103 1.491 -3.564 -0.871 1.391 -3.250 0.661 -2.019 + ML 90 88 6 93 6 1 1 40 59 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 91 88 6 93 6 1 1 40 58 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094 + D 92 88 6 93 6 0 0 37 56 -9.580 -8.278 -4.075 -4.757 -4.775 -0.213 + IL 93 93 5 93 6 1 1 41 60 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 94 94 6 94 5 1 1 40 59 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 86 ] 78 102 g c - - + MP 95 94 6 99 6 2 2 39 58 -8.963 -8.903 -0.023 -7.679 -7.959 -8.354 -3.151 -2.318 -3.218 2.221 -3.389 -4.175 0.910 -3.388 -3.172 2.402 -3.672 0.045 0.563 -3.444 -1.039 -2.118 + ML 96 94 6 99 6 1 1 38 57 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 97 94 6 99 6 1 1 38 57 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094 + D 98 94 6 99 6 0 0 36 55 -9.985 -8.684 -1.787 -5.163 -5.180 -0.618 + IL 99 99 5 99 6 1 1 39 58 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 100 100 6 100 5 1 1 38 57 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 87 ] 79 101 G C - - + MP 101 100 6 105 4 2 2 37 56 -6.667 -6.874 -0.065 -5.289 -4.242 -2.859 -4.309 0.521 -4.529 -4.488 -0.013 -4.506 -3.982 3.491 -4.358 -0.546 -0.415 -4.135 -2.026 -3.194 + ML 102 100 6 105 4 1 1 38 57 -3.758 -3.940 -0.507 -2.670 0.368 -0.385 -0.191 0.094 + MR 103 100 6 105 4 1 1 37 56 -4.809 -3.838 -1.706 -0.766 0.368 -0.385 -0.191 0.094 + D 104 100 6 105 4 0 0 36 55 -5.070 -4.751 -2.767 -0.347 + IL 105 105 5 105 4 1 1 39 58 -1.686 -2.369 -1.117 -4.855 0.000 0.000 0.000 0.000 + IR 106 106 6 106 3 1 1 38 57 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 88 ] 80 - G - - - + ML 107 106 6 109 3 1 1 34 52 -7.706 -0.025 -6.360 -1.031 -2.156 1.557 -1.540 + D 108 106 6 109 3 0 0 33 51 -6.844 -2.357 -0.329 + IL 109 109 3 109 3 1 1 37 56 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 89 ] 81 - A - - - + ML 110 109 3 112 3 1 1 33 51 -8.115 -0.022 -6.432 1.580 -1.859 -1.543 -1.356 + D 111 109 3 112 3 0 0 31 49 -6.063 -1.177 -0.881 + IL 112 112 3 112 3 1 1 34 52 -1.925 -0.554 -4.164 0.000 0.000 0.000 0.000 + [ MATR 90 ] - 100 - A - - + MR 113 112 3 115 3 1 1 32 50 -8.115 -0.022 -6.432 1.146 -1.275 -0.381 -0.721 + D 114 112 3 115 3 0 0 30 48 -6.973 -2.151 -0.383 + IR 115 115 3 115 3 1 1 33 51 -1.925 -0.554 -4.164 0.000 0.000 0.000 0.000 + [ MATR 91 ] - 99 - G - - + MR 116 115 3 118 5 1 1 31 49 -6.871 -0.046 -6.686 -6.898 -7.790 -1.031 -2.156 1.557 -1.540 + D 117 115 3 118 5 0 0 29 47 -5.707 -1.062 -3.334 -4.765 -1.450 + IR 118 118 3 118 5 1 1 31 49 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 92 ] 82 98 g u - - + MP 119 118 3 123 6 2 2 30 48 -9.007 -8.946 -0.023 -7.723 -8.002 -8.397 -3.306 -2.212 -3.443 1.303 -3.903 -4.649 0.426 -3.514 -3.201 1.772 -3.708 2.657 0.064 -3.909 -1.512 -2.218 + ML 120 118 3 123 6 1 1 28 46 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 121 118 3 123 6 1 1 28 46 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094 + D 122 118 3 123 6 0 0 26 44 -9.580 -8.278 -4.075 -4.757 -4.775 -0.213 + IL 123 123 5 123 6 1 1 29 48 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 124 124 6 124 5 1 1 29 47 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 93 ] 83 97 C G - - + MP 125 124 6 129 6 2 2 28 46 -9.007 -8.946 -0.023 -7.723 -8.002 -8.397 -3.451 -3.470 -3.403 0.090 -0.345 -4.024 3.144 -3.208 -3.440 0.276 -3.852 -1.612 1.055 -3.644 -0.293 -2.385 + ML 126 124 6 129 6 1 1 26 44 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 127 124 6 129 6 1 1 26 44 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094 + D 128 124 6 129 6 0 0 24 42 -9.580 -8.278 -4.075 -4.757 -4.775 -0.213 + IL 129 129 5 129 6 1 1 27 46 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 130 130 6 130 5 1 1 27 45 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 94 ] 84 96 u a - - + MP 131 130 6 135 6 2 2 26 44 -9.007 -8.946 -0.023 -7.723 -8.002 -8.397 -3.076 -2.805 -3.102 1.236 -2.515 -3.874 1.775 -3.024 -3.108 1.225 -3.585 -0.698 2.357 -3.304 -0.222 -2.035 + ML 132 130 6 135 6 1 1 24 42 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 133 130 6 135 6 1 1 24 42 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094 + D 134 130 6 135 6 0 0 22 40 -9.580 -8.278 -4.075 -4.757 -4.775 -0.213 + IL 135 135 5 135 6 1 1 25 44 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 136 136 6 136 5 1 1 25 43 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 95 ] 85 95 u a - - + MP 137 136 6 141 6 2 2 24 42 -9.007 -8.946 -0.023 -7.723 -8.002 -8.397 -3.135 -2.817 -3.151 0.805 -2.565 -3.902 1.752 -3.074 -3.163 1.669 -3.631 -0.692 2.321 -3.335 -0.255 -2.075 + ML 138 136 6 141 6 1 1 22 41 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 139 136 6 141 6 1 1 22 40 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094 + D 140 136 6 141 6 0 0 20 38 -9.580 -8.278 -4.075 -4.757 -4.775 -0.213 + IL 141 141 5 141 6 1 1 23 42 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 142 142 6 142 5 1 1 23 41 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 96 ] 86 94 a u - - + MP 143 142 6 147 6 2 2 22 40 -9.007 -8.946 -0.023 -7.723 -8.002 -8.397 -3.403 -2.541 -3.445 2.999 -3.593 -4.630 0.684 -3.508 -3.358 1.503 -3.885 -0.089 0.263 -3.880 -1.260 -2.306 + ML 144 142 6 147 6 1 1 20 39 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 145 142 6 147 6 1 1 20 38 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094 + D 146 142 6 147 6 0 0 18 36 -9.580 -8.278 -4.075 -4.757 -4.775 -0.213 + IL 147 147 5 147 6 1 1 21 40 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 148 148 6 148 5 1 1 21 39 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 97 ] 87 93 c g - - + MP 149 148 6 153 4 2 2 20 38 -6.667 -2.569 -0.329 -5.289 -3.306 -2.979 -3.278 0.677 -2.555 -3.961 2.654 -3.123 -3.291 1.660 -3.726 -0.847 1.244 -3.468 -0.222 -2.178 + ML 150 148 6 153 4 1 1 19 37 -3.758 -3.940 -0.507 -2.670 0.368 -0.385 -0.191 0.094 + MR 151 148 6 153 4 1 1 19 37 -4.809 -3.838 -1.706 -0.766 0.368 -0.385 -0.191 0.094 + D 152 148 6 153 4 0 0 17 36 -5.070 -4.751 -2.767 -0.347 + IL 153 153 5 153 4 1 1 20 39 -1.686 -2.369 -1.117 -4.855 0.000 0.000 0.000 0.000 + IR 154 154 6 154 3 1 1 19 37 -1.802 -0.580 -4.502 0.000 0.000 0.000 0.000 + [ MATL 98 ] 88 - A - - - + ML 155 154 6 157 3 1 1 16 35 -7.706 -0.025 -6.360 1.016 -0.962 -0.988 -0.058 + D 156 154 6 157 3 0 0 15 34 -6.844 -2.357 -0.329 + IL 157 157 3 157 3 1 1 20 38 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 99 ] 89 - u - - - + ML 158 157 3 160 3 1 1 15 33 -7.706 -0.025 -6.360 0.119 -0.678 -0.416 0.622 + D 159 157 3 160 3 0 0 14 33 -6.844 -2.357 -0.329 + IL 160 160 3 160 3 1 1 19 37 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 100 ] 90 - u - - - + ML 161 160 3 163 3 1 1 13 32 -7.706 -0.025 -6.360 0.149 -0.263 -0.422 0.391 + D 162 160 3 163 3 0 0 13 31 -6.844 -2.357 -0.329 + IL 163 163 3 163 3 1 1 18 36 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 101 ] 91 - A - - - + ML 164 163 3 166 2 1 1 1 1 * 0.000 1.077 -1.014 -1.017 -0.151 + D 165 163 3 166 2 0 0 0 0 * 0.000 + IL 166 166 3 166 2 1 1 13 28 -1.823 -0.479 0.000 0.000 0.000 0.000 + [ END 102 ] - - - - - - + E 167 166 3 -1 0 0 0 0 0 + [ BEGL 20 ] - - - - - - + S 168 53 1 169 1 0 13 74 95 0.000 + [ BIF 21 ] - - - - - - + B 169 168 1 170 220 0 13 74 95 + [ BEGL 22 ] - - - - - - + S 170 169 1 171 4 0 0 30 49 -0.116 -6.753 -6.160 -4.219 + [ MATP 23 ] 9 24 u a - - + MP 171 170 1 175 6 2 2 30 49 -8.998 -8.937 -0.023 -7.714 -7.994 -8.389 -2.932 -2.957 -2.965 0.523 -0.359 -3.671 1.878 -2.878 -2.993 0.708 -3.467 -1.142 2.556 -3.162 -0.069 -1.970 + ML 172 170 1 175 6 1 1 29 48 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 173 170 1 175 6 1 1 29 48 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094 + D 174 170 1 175 6 0 0 26 45 -9.673 -8.371 -4.168 -4.850 -4.868 -0.199 + IL 175 175 5 175 6 1 1 30 49 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 176 176 6 176 5 1 1 30 49 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 24 ] 10 23 g c - - + MP 177 176 6 181 6 2 2 28 47 -8.998 -8.937 -0.023 -7.714 -7.994 -8.389 -2.998 -2.299 -3.090 1.120 -2.938 -3.857 1.691 -3.166 -3.037 1.785 -3.477 1.736 0.891 -3.255 -0.635 -2.010 + ML 178 176 6 181 6 1 1 27 46 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 179 176 6 181 6 1 1 27 46 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094 + D 180 176 6 181 6 0 0 24 43 -9.673 -8.371 -4.168 -4.850 -4.868 -0.199 + IL 181 181 5 181 6 1 1 28 47 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 182 182 6 182 5 1 1 28 47 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 25 ] 11 22 g c - - + MP 183 182 6 187 6 2 2 26 45 -8.998 -8.937 -0.023 -7.714 -7.994 -8.389 -2.873 0.293 -2.989 1.227 -3.285 -3.713 0.742 -3.301 -2.986 2.616 -3.425 0.700 0.483 -3.060 -1.068 -2.000 + ML 184 182 6 187 6 1 1 26 45 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 185 182 6 187 6 1 1 25 44 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094 + D 186 182 6 187 6 0 0 23 42 -9.673 -8.371 -4.168 -4.850 -4.868 -0.199 + IL 187 187 5 187 6 1 1 26 45 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 188 188 6 188 5 1 1 26 45 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 26 ] 12 21 a u - - + MP 189 188 6 193 4 2 2 24 43 -6.641 -6.848 -0.066 -5.262 -2.991 -2.507 -3.038 2.184 -2.767 -3.886 1.470 -3.102 -3.056 1.632 -3.544 -0.306 1.458 -3.235 -0.487 -1.992 + ML 190 188 6 193 4 1 1 25 44 -3.758 -3.940 -0.507 -2.670 0.368 -0.385 -0.191 0.094 + MR 191 188 6 193 4 1 1 24 43 -4.809 -3.838 -1.706 -0.766 0.368 -0.385 -0.191 0.094 + D 192 188 6 193 4 0 0 23 42 -5.159 -4.840 -2.856 -0.324 + IL 193 193 5 193 4 1 1 26 45 -1.686 -2.369 -1.117 -4.855 0.000 0.000 0.000 0.000 + IR 194 194 6 194 3 1 1 25 44 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 27 ] 13 - u - - - + ML 195 194 6 197 3 1 1 21 40 -7.682 -0.025 -6.336 -0.327 -0.722 -0.426 0.889 + D 196 194 6 197 3 0 0 20 39 -6.956 -2.469 -0.302 + IL 197 197 3 197 3 1 1 24 43 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 28 ] 14 - g - - - + ML 198 197 3 200 3 1 1 20 39 -7.682 -0.025 -6.336 0.466 -1.209 0.614 -0.608 + D 199 197 3 200 3 0 0 19 38 -6.956 -2.469 -0.302 + IL 200 200 3 200 3 1 1 23 42 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 29 ] 15 - A - - - + ML 201 200 3 203 3 1 1 19 38 -7.682 -0.170 -3.232 1.564 -1.813 -1.501 -1.306 + D 202 200 3 203 3 0 0 18 36 -6.956 -2.469 -0.302 + IL 203 203 3 203 3 1 1 22 41 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 30 ] 16 - C - - - + ML 204 203 3 206 3 1 1 18 36 -7.539 -0.028 -6.193 -0.790 1.219 -1.560 -0.406 + D 205 203 3 206 3 0 0 16 35 -7.457 -1.247 -0.803 + IL 206 206 3 206 3 1 1 21 40 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 31 ] 17 - A - - - + ML 207 206 3 209 3 1 1 16 35 -7.682 -0.025 -6.336 1.564 -1.813 -1.501 -1.306 + D 208 206 3 209 3 0 0 15 34 -6.956 -2.469 -0.302 + IL 209 209 3 209 3 1 1 20 38 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 32 ] 18 - U - - - + ML 210 209 3 212 3 1 1 15 33 -7.682 -0.025 -6.336 -0.985 -1.074 -1.687 1.438 + D 211 209 3 212 3 0 0 14 33 -6.956 -2.469 -0.302 + IL 212 212 3 212 3 1 1 19 37 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 33 ] 19 - A - - - + ML 213 212 3 215 3 1 1 13 32 -7.682 -0.025 -6.336 1.070 -1.219 -0.257 -0.657 + D 214 212 3 215 3 0 0 13 31 -6.956 -2.469 -0.302 + IL 215 215 3 215 3 1 1 18 36 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 34 ] 20 - a - - - + ML 216 215 3 218 2 1 1 1 1 * 0.000 0.991 -0.457 -0.957 -0.379 + D 217 215 3 218 2 0 0 0 0 * 0.000 + IL 218 218 3 218 2 1 1 13 28 -1.823 -0.479 0.000 0.000 0.000 0.000 + [ END 35 ] - - - - - - + E 219 218 3 -1 0 0 0 0 0 + [ BEGR 36 ] - - - - - - + S 220 169 1 221 3 0 6 58 79 -7.812 -0.155 -3.355 + IL 221 221 2 221 3 1 7 61 82 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 37 ] 25 - U - - - + ML 222 221 2 224 3 1 8 58 79 -7.682 -0.025 -6.336 -0.985 -1.074 -1.687 1.438 + D 223 221 2 224 3 0 3 56 77 -6.956 -2.469 -0.302 + IL 224 224 3 224 3 1 7 60 81 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 38 ] 26 - A - - - + ML 225 224 3 227 3 1 7 57 78 -7.682 -0.025 -6.336 1.564 -1.813 -1.501 -1.306 + D 226 224 3 227 3 0 3 56 76 -6.956 -0.740 -1.347 + IL 227 227 3 227 3 1 6 59 80 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 39 ] 27 - C - - - + ML 228 227 3 230 3 1 7 56 77 -7.812 -0.023 -6.466 -1.379 1.510 -2.188 -0.867 + D 229 227 3 230 3 0 2 54 75 -6.174 -1.687 -0.566 + IL 230 230 3 230 3 1 5 58 79 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 40 ] 28 - a - - - + ML 231 230 3 233 3 1 6 55 76 -7.812 -0.023 -6.466 0.714 -0.374 -0.926 0.086 + D 232 230 3 233 3 0 1 53 74 -6.174 -1.687 -0.566 + IL 233 233 3 233 3 1 5 57 77 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 41 ] 29 - C - - - + ML 234 233 3 236 3 1 6 54 75 -7.812 -0.023 -6.466 -1.379 1.510 -2.188 -0.867 + D 235 233 3 236 3 0 1 52 73 -6.174 -1.687 -0.566 + IL 236 236 3 236 3 1 4 55 76 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 42 ] 30 - A - - - + ML 237 236 3 239 3 1 5 53 73 -7.812 -0.023 -6.466 1.134 -1.091 -1.100 -0.202 + D 238 236 3 239 3 0 1 51 72 -6.174 -1.687 -0.566 + IL 239 239 3 239 3 1 4 54 75 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 43 ] 31 - A - - - + ML 240 239 3 242 3 1 4 52 72 -7.812 -0.023 -6.466 1.644 -2.067 -1.730 -1.581 + D 241 239 3 242 3 0 0 50 71 -6.174 -1.687 -0.566 + IL 242 242 3 242 3 1 3 53 74 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 44 ] 32 - A - - - + ML 243 242 3 245 3 1 3 51 71 -7.812 -0.023 -6.466 1.136 -1.093 -1.101 -0.206 + D 244 242 3 245 3 0 0 49 70 -6.174 -1.687 -0.566 + IL 245 245 3 245 3 1 3 52 73 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 45 ] 33 - A - - - + ML 246 245 3 248 3 1 3 50 70 -3.468 -0.155 -6.466 1.644 -2.067 -1.730 -1.581 + D 247 245 3 248 3 0 0 47 67 -6.174 -1.687 -0.566 + IL 248 248 3 248 3 1 3 51 72 -1.311 -0.849 -4.584 0.000 0.000 0.000 0.000 + [ MATL 46 ] 36 - u - - - + ML 249 248 3 251 3 1 2 47 67 -7.812 -0.155 -3.363 -0.622 0.024 -1.367 0.960 + D 250 248 3 251 3 0 0 46 66 -6.174 -1.687 -0.566 + IL 251 251 3 251 3 1 2 49 69 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 47 ] 37 - c - - - + ML 252 251 3 254 3 1 3 46 66 -7.683 -0.025 -6.337 0.044 0.696 -1.117 -0.172 + D 253 251 3 254 3 0 0 45 64 -6.952 -2.465 -0.303 + IL 254 254 3 254 3 1 2 48 68 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 48 ] 38 - A - - - + ML 255 254 3 257 5 1 3 45 65 -6.851 -0.046 -6.666 -6.878 -7.770 1.565 -1.815 -1.502 -1.307 + D 256 254 3 257 5 0 0 44 64 -5.447 -0.524 -4.709 -3.083 -2.996 + IL 257 257 3 257 5 1 1 45 65 -2.408 -0.496 -4.087 -5.920 -5.193 0.000 0.000 0.000 0.000 + [ MATP 49 ] 39 67 u a - - + MP 258 257 3 262 6 2 4 44 64 -9.047 -8.986 -0.022 -7.763 -8.042 -8.437 -3.282 -3.242 -3.237 0.362 -2.370 -3.874 1.901 -3.024 -3.261 0.619 -3.690 -1.316 2.407 -3.464 1.350 -2.185 + ML 259 257 3 262 6 1 1 43 62 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 260 257 3 262 6 1 1 43 62 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094 + D 261 257 3 262 6 0 0 40 60 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319 + IL 262 262 5 262 6 1 1 44 63 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 263 263 6 263 5 1 1 43 63 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 50 ] 40 66 U A - - + MP 264 263 6 268 6 2 3 42 62 -9.047 -8.986 -0.022 -7.763 -8.042 -8.437 -3.884 -3.698 -3.755 -0.016 -2.766 -4.347 1.555 -3.439 -3.764 0.289 -4.152 -1.606 3.159 -4.046 -0.450 -2.616 + ML 265 263 6 268 6 1 1 41 61 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 266 263 6 268 6 1 1 41 61 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094 + D 267 263 6 268 6 0 0 39 59 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319 + IL 268 268 5 268 6 1 1 42 62 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 269 269 6 269 5 1 1 42 61 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 51 ] 41 65 C G - - + MP 270 269 6 274 4 2 2 40 60 -6.783 -6.990 -0.060 -5.404 -4.247 -4.123 -3.986 -0.386 -2.775 -4.437 3.445 -3.554 -4.027 -0.097 -4.319 -2.068 0.768 -4.335 -0.475 -2.878 + ML 271 269 6 274 4 1 1 40 60 -3.758 -3.940 -0.507 -2.670 0.368 -0.385 -0.191 0.094 + MR 272 269 6 274 4 1 1 40 60 -4.809 -3.838 -1.706 -0.766 0.368 -0.385 -0.191 0.094 + D 273 269 6 274 4 0 0 39 59 -4.568 -4.250 -2.265 -0.520 + IL 274 274 5 274 4 1 1 42 62 -1.686 -2.369 -1.117 -4.855 0.000 0.000 0.000 0.000 + IR 275 275 6 275 3 1 1 41 61 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 52 ] 42 - A - - - + ML 276 275 6 278 3 1 1 38 57 -7.812 -0.023 -6.466 1.205 -1.379 -0.417 -0.834 + D 277 275 6 278 3 0 0 36 56 -6.174 -1.687 -0.566 + IL 278 278 3 278 3 1 1 40 59 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 53 ] 43 - A - - - + ML 279 278 3 281 3 1 1 37 56 -7.812 -0.023 -6.466 1.134 -1.091 -1.100 -0.202 + D 280 278 3 281 3 0 0 35 55 -6.174 -1.687 -0.566 + IL 281 281 3 281 3 1 1 39 58 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 54 ] 44 - G - - - + ML 282 281 3 284 3 1 1 35 55 -7.812 -0.023 -6.466 -1.255 -2.421 1.636 -1.806 + D 283 281 3 284 3 0 0 34 54 -6.174 -1.687 -0.566 + IL 284 284 3 284 3 1 1 38 57 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 55 ] 45 - A - - - + ML 285 284 3 287 3 1 1 34 54 -7.812 -0.023 -6.466 1.134 -1.091 -1.100 -0.202 + D 286 284 3 287 3 0 0 33 53 -6.174 -1.687 -0.566 + IL 287 287 3 287 3 1 1 37 56 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 56 ] 46 - U - - - + ML 288 287 3 290 3 1 1 33 53 -7.812 -0.023 -6.466 -1.210 -1.256 -1.928 1.529 + D 289 287 3 290 3 0 0 32 51 -6.174 -1.687 -0.566 + IL 290 290 3 290 3 1 1 36 55 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 57 ] 47 - G - - - + ML 291 290 3 293 3 1 1 32 52 -7.812 -0.023 -6.466 -0.083 -1.596 1.152 -0.993 + D 292 290 3 293 3 0 0 31 50 -6.174 -1.687 -0.566 + IL 293 293 3 293 3 1 1 35 54 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 58 ] 48 - C - - - + ML 294 293 3 296 3 1 1 31 50 -7.812 -0.023 -6.466 -1.379 1.510 -2.188 -0.867 + D 295 293 3 296 3 0 0 30 49 -6.174 -1.687 -0.566 + IL 296 296 3 296 3 1 1 33 53 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 59 ] 49 - A - - - + ML 297 296 3 299 3 1 1 30 49 -7.812 -0.023 -6.466 1.644 -2.067 -1.730 -1.581 + D 298 296 3 299 3 0 0 29 48 -6.174 -1.687 -0.566 + IL 299 299 3 299 3 1 1 32 52 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 60 ] 50 - u - - - + ML 300 299 3 302 3 1 1 29 48 -7.812 -0.301 -2.445 -0.314 -0.806 -0.028 0.716 + D 301 299 3 302 3 0 0 28 47 -6.174 -1.687 -0.566 + IL 302 302 3 302 3 1 1 31 51 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 61 ] 51 - C - - - + ML 303 302 3 305 3 1 1 28 47 -7.539 -0.028 -6.193 -0.790 1.219 -1.560 -0.406 + D 304 302 3 305 3 0 0 27 46 -7.457 -0.481 -1.849 + IL 305 305 3 305 3 1 1 30 50 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 62 ] 52 - G - - - + ML 306 305 3 308 3 1 1 27 46 -7.812 -0.023 -6.466 -1.255 -2.421 1.636 -1.806 + D 307 305 3 308 3 0 0 26 45 -6.174 -1.687 -0.566 + IL 308 308 3 308 3 1 1 29 49 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 63 ] 53 - A - - - + ML 309 308 3 311 3 1 1 26 45 -7.812 -0.237 -2.764 1.644 -2.067 -1.730 -1.581 + D 310 308 3 311 3 0 0 25 44 -6.174 -1.687 -0.566 + IL 311 311 3 311 3 1 1 28 48 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 64 ] 54 - a - - - + ML 312 311 3 314 3 1 1 25 44 -7.602 -0.027 -6.256 0.607 0.044 -0.878 -0.149 + D 313 311 3 314 3 0 0 24 43 -7.265 -0.564 -1.657 + IL 314 314 3 314 3 1 1 27 46 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 65 ] 55 - G - - - + ML 315 314 3 317 3 1 1 24 42 -7.812 -0.254 -2.669 -1.255 -2.421 1.636 -1.806 + D 316 314 3 317 3 0 0 23 42 -6.174 -1.687 -0.566 + IL 317 317 3 317 3 1 1 26 45 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 66 ] 56 - a - - - + ML 318 317 3 320 3 1 1 22 41 -7.585 -0.027 -6.239 0.532 -1.110 0.473 -0.510 + D 319 317 3 320 3 0 0 21 40 -7.321 -0.538 -1.713 + IL 320 320 3 320 3 1 1 25 44 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 67 ] 57 - c - - - + ML 321 320 3 323 3 1 1 21 40 -7.812 -0.023 -6.466 -0.665 0.799 -1.449 0.337 + D 322 320 3 323 3 0 0 20 39 -6.174 -1.687 -0.566 + IL 323 323 3 323 3 1 1 24 43 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 68 ] 58 - G - - - + ML 324 323 3 326 3 1 1 20 39 -7.812 -0.023 -6.466 -1.255 -2.421 1.636 -1.806 + D 325 323 3 326 3 0 0 19 38 -6.174 -1.687 -0.566 + IL 326 326 3 326 3 1 1 23 42 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 69 ] 59 - G - - - + ML 327 326 3 329 3 1 1 19 38 -7.812 -0.023 -6.466 -1.255 -2.421 1.636 -1.806 + D 328 326 3 329 3 0 0 18 37 -6.174 -1.687 -0.566 + IL 329 329 3 329 3 1 1 22 41 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 70 ] 60 - C - - - + ML 330 329 3 332 3 1 1 18 36 -7.812 -0.023 -6.466 -1.379 1.510 -2.188 -0.867 + D 331 329 3 332 3 0 0 17 36 -6.174 -1.687 -0.566 + IL 332 332 3 332 3 1 1 21 40 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 71 ] 61 - A - - - + ML 333 332 3 335 3 1 1 16 35 -7.812 -0.023 -6.466 1.644 -2.067 -1.730 -1.581 + D 334 332 3 335 3 0 0 16 34 -6.174 -1.687 -0.566 + IL 335 335 3 335 3 1 1 20 38 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 72 ] 62 - a - - - + ML 336 335 3 338 3 1 1 15 33 -7.812 -0.023 -6.466 0.978 -1.275 0.004 -0.703 + D 337 335 3 338 3 0 0 15 33 -6.174 -1.687 -0.566 + IL 338 338 3 338 3 1 1 19 37 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 73 ] 63 - C - - - + ML 339 338 3 341 3 1 1 13 32 -7.812 -0.023 -6.466 -1.379 1.510 -2.188 -0.867 + D 340 338 3 341 3 0 0 13 32 -6.174 -1.687 -0.566 + IL 341 341 3 341 3 1 1 18 36 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 74 ] 64 - U - - - + ML 342 341 3 344 2 1 1 1 1 * 0.000 -1.210 -1.256 -1.928 1.529 + D 343 341 3 344 2 0 0 0 0 * 0.000 + IL 344 344 3 344 2 1 1 13 28 -1.823 -0.479 0.000 0.000 0.000 0.000 + [ END 75 ] - - - - - - + E 345 344 3 -1 0 0 0 0 0 + [ BEGR 103 ] - - - - - - + S 346 51 1 347 3 0 17 93 114 -7.812 -0.131 -3.602 + IL 347 347 2 347 3 1 18 96 117 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 104 ] 107 - u - - - + ML 348 347 2 350 3 1 17 93 114 -7.706 -0.167 -3.256 -0.018 -0.728 -1.078 0.952 + D 349 347 2 350 3 0 14 91 112 -6.844 -2.357 -0.329 + IL 350 350 3 350 3 1 18 95 116 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 105 ] 108 - G - - - + ML 351 350 3 353 3 1 17 92 113 -7.566 -0.027 -6.220 -0.747 -1.813 1.424 -1.199 + D 352 350 3 353 3 0 13 90 110 -7.380 -2.893 -0.219 + IL 353 353 3 353 3 1 17 94 115 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 106 ] 109 - A - - - + ML 354 353 3 356 3 1 16 91 112 -7.566 -0.027 -6.220 1.479 -1.595 -1.303 -1.071 + D 355 353 3 356 3 0 13 89 109 -7.380 -2.893 -0.219 + IL 356 356 3 356 3 1 16 93 114 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 107 ] 110 - g - - - + ML 357 356 3 359 3 1 15 90 110 -7.566 -0.027 -6.220 0.260 -1.188 0.761 -0.581 + D 358 356 3 359 3 0 13 88 109 -7.380 -2.893 -0.219 + IL 359 359 3 359 3 1 15 92 112 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 108 ] 111 - u - - - + ML 360 359 3 362 3 1 14 89 109 -7.566 -0.027 -6.220 -0.439 -0.064 -1.160 0.894 + D 361 359 3 362 3 0 13 88 108 -7.380 -0.512 -1.771 + IL 362 362 3 362 3 1 14 91 111 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 109 ] 112 - G - - - + ML 363 362 3 365 3 1 13 88 108 -7.812 -0.023 -6.466 -1.255 -2.421 1.636 -1.806 + D 364 362 3 365 3 0 11 87 107 -6.174 -1.687 -0.566 + IL 365 365 3 365 3 1 13 90 110 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 110 ] 113 - A - - - + ML 366 365 3 368 2 1 12 87 107 -8.172 -0.005 1.644 -2.067 -1.730 -1.581 + D 367 365 3 368 2 0 11 86 106 -8.445 -0.004 + IL 368 368 3 368 2 1 12 88 108 -1.823 -0.479 0.000 0.000 0.000 0.000 + [ BIF 111 ] - - - - - - + B 369 368 3 370 497 0 11 86 106 + [ BEGL 112 ] - - - - - - + S 370 369 1 371 1 0 1 55 74 0.000 + [ BIF 113 ] - - - - - - + B 371 370 1 372 443 0 1 55 74 + [ BEGL 114 ] - - - - - - + S 372 371 1 373 4 0 0 37 56 -0.173 -6.753 -3.400 -6.800 + [ MATP 115 ] 114 136 c g - - + MP 373 372 1 377 6 2 2 37 56 -8.957 -8.897 -0.023 -7.673 -7.953 -8.348 -3.363 -3.270 -3.250 0.369 -2.263 -3.812 2.811 -2.958 -3.281 0.703 -3.663 -1.302 1.360 -3.499 0.915 -2.175 + ML 374 372 1 377 6 1 1 36 55 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 375 372 1 377 6 1 1 35 54 -7.724 -6.453 -2.362 -6.431 -0.439 -4.645 -0.358 0.852 -1.088 -0.083 + D 376 372 1 377 6 0 0 33 52 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319 + IL 377 377 5 377 6 1 1 37 56 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 378 378 6 378 5 1 1 37 56 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 116 ] 115 135 a u - - + MP 379 378 6 383 6 2 2 35 54 -8.957 -8.897 -0.023 -7.673 -7.953 -8.348 -3.246 -2.431 -3.293 2.785 -3.359 -4.393 0.915 -3.358 -3.215 1.687 -3.733 -0.013 0.489 -3.671 -1.033 -2.167 + ML 380 378 6 383 6 1 1 34 53 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 381 378 6 383 6 1 1 33 52 -7.724 -6.453 -2.362 -6.431 -0.439 -4.645 -0.358 0.852 -1.088 -0.083 + D 382 378 6 383 6 0 0 31 50 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319 + IL 383 383 5 383 6 1 1 35 54 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 384 384 6 384 5 1 1 35 54 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 117 ] 116 134 a u - - + MP 385 384 6 389 6 2 2 33 52 -8.957 -8.897 -0.023 -7.673 -7.953 -8.348 -3.246 -2.431 -3.293 2.785 -3.359 -4.393 0.915 -3.358 -3.215 1.687 -3.733 -0.013 0.489 -3.671 -1.033 -2.167 + ML 386 384 6 389 6 1 1 32 51 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 387 384 6 389 6 1 1 31 50 -7.724 -6.453 -2.362 -6.431 -0.439 -4.645 -0.257 -1.208 1.055 -0.617 + D 388 384 6 389 6 0 0 29 48 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319 + IL 389 389 5 389 6 1 1 33 52 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 390 390 6 390 5 1 1 33 52 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 118 ] 117 133 a u - - + MP 391 390 6 395 6 2 2 31 50 -8.957 -8.897 -0.023 -7.673 -7.953 -8.348 -3.246 -2.431 -3.293 2.785 -3.359 -4.393 0.915 -3.358 -3.215 1.687 -3.733 -0.013 0.489 -3.671 -1.033 -2.167 + ML 392 390 6 395 6 1 1 30 49 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 393 390 6 395 6 1 1 29 48 -7.724 -6.453 -2.362 -6.431 -0.439 -4.645 1.216 -1.124 -0.868 -0.579 + D 394 390 6 395 6 0 0 27 46 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319 + IL 395 395 5 395 6 1 1 31 50 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 396 396 6 396 5 1 1 31 50 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 119 ] 118 132 u a - - + MP 397 396 6 401 6 2 2 29 48 -8.957 -8.897 -0.023 -7.673 -7.953 -8.348 -3.494 -3.272 -3.401 0.373 -2.511 -4.023 1.796 -3.149 -3.416 0.777 -3.819 -1.185 2.833 -3.663 -0.204 -2.298 + ML 398 396 6 401 6 1 1 28 47 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 399 396 6 401 6 1 1 27 46 -7.724 -6.453 -2.362 -6.431 -0.439 -4.645 0.542 -0.088 -0.703 -0.017 + D 400 396 6 401 6 0 0 25 44 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319 + IL 401 401 5 401 6 1 1 29 48 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 402 402 6 402 5 1 1 29 48 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 120 ] 119 131 c g - - + MP 403 402 6 407 6 2 2 27 46 -8.957 -8.897 -0.023 -7.673 -7.953 -8.348 -3.373 -3.278 -3.258 0.362 -2.268 -3.818 2.826 -2.964 -3.289 0.698 -3.670 -1.309 1.355 -3.508 0.879 -2.182 + ML 404 402 6 407 6 1 1 26 45 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 405 402 6 407 6 1 1 26 45 -7.724 -6.453 -2.362 -6.431 -0.439 -4.645 -0.257 -1.208 1.055 -0.617 + D 406 402 6 407 6 0 0 24 43 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319 + IL 407 407 5 407 6 1 1 27 46 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 408 408 6 408 5 1 1 27 46 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 121 ] 120 130 u a - - + MP 409 408 6 413 6 2 2 25 44 -8.957 -8.897 -0.023 -7.673 -7.953 -8.348 -2.819 -2.839 -2.858 0.625 -0.298 -3.570 1.943 -2.789 -2.889 0.828 -3.365 -1.030 2.395 -3.051 0.003 -1.874 + ML 410 408 6 413 6 1 1 25 44 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 411 408 6 413 6 1 1 24 43 -7.724 -6.453 -2.362 -6.431 -0.439 -4.645 -0.257 -1.208 1.055 -0.617 + D 412 408 6 413 6 0 0 23 42 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319 + IL 413 413 5 413 6 1 1 25 44 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 414 414 6 414 5 1 1 25 44 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 122 ] 121 129 G C - - + MP 415 414 6 419 4 2 2 23 42 -6.516 -6.723 -0.072 -5.137 -3.982 -2.739 -4.040 0.680 -4.163 -4.370 0.296 -4.205 -3.787 3.384 -4.185 -0.424 -0.116 -3.958 -1.707 -2.929 + ML 416 414 6 419 4 1 1 24 43 -3.758 -3.940 -0.507 -2.670 0.368 -0.385 -0.191 0.094 + MR 417 414 6 419 4 1 1 23 42 -5.631 -4.660 -2.527 -0.383 1.216 -1.124 -0.868 -0.579 + D 418 414 6 419 4 0 0 22 41 -4.568 -4.250 -2.265 -0.520 + IL 419 419 5 419 4 1 1 25 44 -1.686 -2.369 -1.117 -4.855 0.000 0.000 0.000 0.000 + IR 420 420 6 420 3 1 1 24 43 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 123 ] 122 - U - - - + ML 421 420 6 423 3 1 1 20 39 -7.568 -0.027 -6.222 -0.797 -0.925 -1.483 1.345 + D 422 420 6 423 3 0 0 19 37 -7.374 -2.887 -0.220 + IL 423 423 3 423 3 1 1 23 42 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 124 ] 123 - C - - - + ML 424 423 3 426 3 1 1 19 38 -7.568 -0.027 -6.222 -0.847 1.255 -1.621 -0.449 + D 425 423 3 426 3 0 0 17 36 -7.374 -2.887 -0.220 + IL 426 426 3 426 3 1 1 22 41 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 125 ] 124 - a - - - + ML 427 426 3 429 3 1 1 18 36 -7.568 -0.027 -6.222 0.553 -0.427 -0.168 -0.153 + D 428 426 3 429 3 0 0 16 35 -7.374 -2.887 -0.220 + IL 429 429 3 429 3 1 1 21 40 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 126 ] 125 - G - - - + ML 430 429 3 432 3 1 1 16 35 -7.568 -0.027 -6.222 -0.750 -1.817 1.426 -1.204 + D 431 429 3 432 3 0 0 15 34 -7.374 -2.887 -0.220 + IL 432 432 3 432 3 1 1 20 38 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 127 ] 126 - G - - - + ML 433 432 3 435 3 1 1 15 34 -7.568 -0.027 -6.222 -0.750 -1.817 1.426 -1.204 + D 434 432 3 435 3 0 0 14 32 -7.374 -2.887 -0.220 + IL 435 435 3 435 3 1 1 19 37 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 128 ] 127 - A - - - + ML 436 435 3 438 3 1 1 13 32 -7.568 -0.027 -6.222 1.481 -1.598 -1.306 -1.075 + D 437 435 3 438 3 0 0 12 31 -7.374 -2.887 -0.220 + IL 438 438 3 438 3 1 1 18 36 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 129 ] 128 - a - - - + ML 439 438 3 441 2 1 1 1 1 * 0.000 0.934 -1.096 -0.112 -0.521 + D 440 438 3 441 2 0 0 0 0 * 0.000 + IL 441 441 3 441 2 1 1 13 28 -1.823 -0.479 0.000 0.000 0.000 0.000 + [ END 130 ] - - - - - - + E 442 441 3 -1 0 0 0 0 0 + [ BEGR 131 ] - - - - - - + S 443 371 1 444 3 0 0 31 50 -7.812 -0.023 -6.466 + IL 444 444 2 444 3 1 1 34 53 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 132 ] 137 - A - - - + ML 445 444 2 447 3 1 1 31 49 -7.812 -0.023 -6.466 1.644 -2.067 -1.730 -1.581 + D 446 444 2 447 3 0 0 30 48 -6.174 -1.687 -0.566 + IL 447 447 3 447 3 1 1 33 52 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 133 ] 138 - A - - - + ML 448 447 3 450 5 1 1 30 48 -6.962 -0.043 -6.777 -6.989 -7.881 1.644 -2.067 -1.730 -1.581 + D 449 447 3 450 5 0 0 28 47 -4.959 -0.803 -4.221 -2.596 -2.508 + IL 450 450 3 450 5 1 1 30 49 -2.408 -0.496 -4.087 -5.920 -5.193 0.000 0.000 0.000 0.000 + [ MATP 134 ] 139 153 C G - - + MP 451 450 3 455 6 2 2 29 47 -9.047 -8.986 -0.022 -7.763 -8.042 -8.437 -4.247 -4.123 -3.986 -0.386 -2.775 -4.437 3.445 -3.554 -4.027 -0.097 -4.319 -2.068 0.768 -4.335 -0.475 -2.878 + ML 452 450 3 455 6 1 1 27 46 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 453 450 3 455 6 1 1 27 46 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094 + D 454 450 3 455 6 0 0 25 43 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319 + IL 455 455 5 455 6 1 1 28 47 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 456 456 6 456 5 1 1 28 47 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 135 ] 140 152 g c - - + MP 457 456 6 461 6 2 2 27 45 -9.047 -8.986 -0.022 -7.763 -8.042 -8.437 -3.343 -2.376 -3.379 1.759 -3.795 -4.201 0.567 -3.686 -3.405 2.807 -3.859 0.578 0.277 -3.480 -1.372 -2.307 + ML 458 456 6 461 6 1 1 25 44 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 459 456 6 461 6 1 1 25 44 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094 + D 460 456 6 461 6 0 0 23 41 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319 + IL 461 461 5 461 6 1 1 26 45 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 462 462 6 462 5 1 1 26 45 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 136 ] 141 151 c g - - + MP 463 462 6 467 6 2 2 25 43 -9.047 -8.986 -0.022 -7.763 -8.042 -8.437 -2.417 -2.356 -2.544 1.146 -2.227 -0.811 2.377 -2.681 -2.581 1.228 -3.082 -0.627 1.288 -2.678 -0.141 -1.648 + ML 464 462 6 467 6 1 1 23 42 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 465 462 6 467 6 1 1 23 42 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094 + D 466 462 6 467 6 0 0 21 39 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319 + IL 467 467 5 467 6 1 1 24 43 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 468 468 6 468 5 1 1 24 43 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 137 ] 142 150 c g - - + MP 469 468 6 473 6 2 2 23 41 -9.047 -8.986 -0.022 -7.763 -8.042 -8.437 -2.413 -0.771 -2.546 1.246 -2.303 -3.341 2.047 -2.711 -2.587 1.494 -3.104 -0.448 1.536 -2.665 -0.180 -1.624 + ML 470 468 6 473 6 1 1 21 40 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 471 468 6 473 6 1 1 21 40 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094 + D 472 468 6 473 6 0 0 19 38 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319 + IL 473 473 5 473 6 1 1 22 41 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 474 474 6 474 5 1 1 22 41 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 138 ] 143 149 g c - - + MP 475 474 6 479 6 2 2 21 39 -9.047 -8.986 -0.022 -7.763 -8.042 -8.437 -1.876 -1.905 -2.047 1.178 -0.882 -2.870 1.498 -2.353 -2.114 1.730 -1.345 0.377 1.287 -2.169 -0.105 -1.247 + ML 476 474 6 479 6 1 1 20 39 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 477 474 6 479 6 1 1 20 39 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094 + D 478 474 6 479 6 0 0 18 37 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319 + IL 479 479 5 479 6 1 1 20 39 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 480 480 6 480 5 1 1 20 39 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 139 ] 144 148 c g - - + MP 481 480 6 485 4 2 2 19 37 -6.783 -6.990 -0.060 -5.404 -0.888 -2.159 -2.192 0.996 -0.680 -3.021 2.157 -2.398 -2.238 1.021 -2.790 -0.606 1.577 -2.340 0.014 -1.356 + ML 482 480 6 485 4 1 1 19 38 -3.758 -3.940 -0.507 -2.670 0.368 -0.385 -0.191 0.094 + MR 483 480 6 485 4 1 1 19 38 -4.809 -3.838 -1.706 -0.766 0.368 -0.385 -0.191 0.094 + D 484 480 6 485 4 0 0 18 37 -4.568 -4.250 -2.265 -0.520 + IL 485 485 5 485 4 1 1 21 40 -1.686 -2.369 -1.117 -4.855 0.000 0.000 0.000 0.000 + IR 486 486 6 486 3 1 1 20 38 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 140 ] 145 - g - - - + ML 487 486 6 489 3 1 1 15 33 -7.812 -0.023 -6.466 -0.322 -0.965 0.586 0.247 + D 488 486 6 489 3 0 0 15 33 -6.174 -1.687 -0.566 + IL 489 489 3 489 3 1 1 19 37 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 141 ] 146 - g - - - + ML 490 489 3 492 3 1 1 13 32 -7.812 -0.155 -3.363 -0.348 -1.021 0.696 0.139 + D 491 489 3 492 3 0 0 13 32 -6.174 -1.687 -0.566 + IL 492 492 3 492 3 1 1 18 36 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 142 ] 147 - a - - - + ML 493 492 3 495 2 1 1 1 1 * 0.000 0.685 -0.003 -0.921 -0.208 + D 494 492 3 495 2 0 0 0 0 * 0.000 + IL 495 495 3 495 2 1 1 13 28 -1.823 -0.479 0.000 0.000 0.000 0.000 + [ END 143 ] - - - - - - + E 496 495 3 -1 0 0 0 0 0 + [ BEGR 144 ] - - - - - - + S 497 369 1 498 2 0 0 45 64 -8.172 -0.005 + IL 498 498 2 498 2 1 1 47 66 -1.823 -0.479 0.000 0.000 0.000 0.000 + [ BIF 145 ] - - - - - - + B 499 498 2 500 538 0 0 45 64 + [ BEGL 146 ] - - - - - - + S 500 499 1 501 4 0 0 26 45 -0.173 -6.753 -6.160 -3.479 + [ MATP 147 ] 154 165 G C - - + MP 501 500 1 505 6 2 2 26 45 -8.957 -8.897 -0.023 -7.673 -7.953 -8.348 -3.982 -2.739 -4.040 0.680 -4.163 -4.370 0.296 -4.205 -3.787 3.384 -4.185 -0.424 -0.116 -3.958 -1.707 -2.929 + ML 502 500 1 505 6 1 1 25 43 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 503 500 1 505 6 1 1 24 43 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094 + D 504 500 1 505 6 0 0 21 40 -10.032 -8.730 -4.527 -5.209 -5.227 -0.153 + IL 505 505 5 505 6 1 1 26 44 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 506 506 6 506 5 1 1 25 44 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 148 ] 155 164 c g - - + MP 507 506 6 511 6 2 2 24 43 -8.957 -8.897 -0.023 -7.673 -7.953 -8.348 -3.426 -3.288 -3.300 0.384 -2.301 -3.860 2.818 -2.995 -3.330 0.762 -3.707 -1.268 1.746 -3.553 0.010 -2.208 + ML 508 506 6 511 6 1 1 23 42 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 509 506 6 511 6 1 1 23 41 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094 + D 510 506 6 511 6 0 0 20 39 -10.032 -8.730 -4.527 -5.209 -5.227 -0.153 + IL 511 511 5 511 6 1 1 24 42 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 512 512 6 512 5 1 1 23 42 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 149 ] 156 163 C G - - + MP 513 512 6 517 6 2 2 22 41 -8.957 -8.897 -0.023 -7.673 -7.953 -8.348 -3.809 -3.628 -3.614 0.055 -2.522 -4.118 3.229 -3.252 -3.648 0.446 -3.978 -1.567 1.053 -3.919 -0.220 -2.516 + ML 514 512 6 517 6 1 1 21 40 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 515 512 6 517 6 1 1 21 40 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094 + D 516 512 6 517 6 0 0 19 38 -10.032 -8.730 -4.527 -5.209 -5.227 -0.153 + IL 517 517 5 517 6 1 1 22 41 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 518 518 6 518 5 1 1 21 40 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 150 ] 157 162 C G - - + MP 519 518 6 523 4 2 2 20 39 -6.516 -6.723 -0.072 -5.137 -3.809 -3.628 -3.614 0.055 -2.522 -4.118 3.229 -3.252 -3.648 0.446 -3.978 -1.567 1.053 -3.919 -0.220 -2.516 + ML 520 518 6 523 4 1 1 21 39 -3.758 -3.940 -0.507 -2.670 0.368 -0.385 -0.191 0.094 + MR 521 518 6 523 4 1 1 20 39 -4.809 -3.838 -1.706 -0.766 0.368 -0.385 -0.191 0.094 + D 522 518 6 523 4 0 0 18 37 -5.504 -5.185 -3.201 -0.249 + IL 523 523 5 523 4 1 1 22 41 -1.686 -2.369 -1.117 -4.855 0.000 0.000 0.000 0.000 + IR 524 524 6 524 3 1 1 21 40 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 151 ] 158 - g - - - + ML 525 524 6 527 3 1 1 16 35 -7.568 -0.027 -6.222 -0.227 -0.920 0.657 0.058 + D 526 524 6 527 3 0 0 15 34 -7.374 -2.887 -0.220 + IL 527 527 3 527 3 1 1 20 38 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 152 ] 159 - u - - - + ML 528 527 3 530 3 1 1 15 34 -7.568 -0.027 -6.222 0.092 -0.171 -0.893 0.592 + D 529 527 3 530 3 0 0 14 32 -7.374 -2.887 -0.220 + IL 530 530 3 530 3 1 1 19 37 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 153 ] 160 - a - - - + ML 531 530 3 533 3 1 1 13 32 -7.568 -0.027 -6.222 0.230 -0.326 0.156 -0.127 + D 532 530 3 533 3 0 0 12 31 -7.374 -2.887 -0.220 + IL 533 533 3 533 3 1 1 18 36 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 154 ] 161 - A - - - + ML 534 533 3 536 2 1 1 1 1 * 0.000 1.481 -1.598 -1.306 -1.075 + D 535 533 3 536 2 0 0 0 0 * 0.000 + IL 536 536 3 536 2 1 1 13 28 -1.823 -0.479 0.000 0.000 0.000 0.000 + [ END 155 ] - - - - - - + E 537 536 3 -1 0 0 0 0 0 + [ BEGR 156 ] - - - - - - + S 538 499 1 539 3 0 0 32 51 -7.812 -0.272 -2.580 + IL 539 539 2 539 3 1 1 35 55 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 157 ] 166 - G - - - + ML 540 539 2 542 3 1 1 32 51 -7.568 -0.027 -6.222 -0.750 -1.817 1.426 -1.204 + D 541 539 2 542 3 0 0 30 49 -7.374 -2.887 -0.220 + IL 542 542 3 542 3 1 1 34 54 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 158 ] 167 - A - - - + ML 543 542 3 545 5 1 1 31 50 -6.754 -0.050 -6.569 -6.781 -7.673 1.481 -1.598 -1.306 -1.075 + D 544 542 3 545 5 0 0 29 48 -5.750 -1.594 -5.012 -3.386 -0.934 + IL 545 545 3 545 5 1 1 31 50 -2.408 -0.496 -4.087 -5.920 -5.193 0.000 0.000 0.000 0.000 + [ MATP 159 ] 168 184 G C - - + MP 546 545 3 550 6 2 2 30 49 -8.957 -8.897 -0.023 -7.673 -7.953 -8.348 -3.982 -2.739 -4.040 0.680 -4.163 -4.370 0.296 -4.205 -3.787 3.384 -4.185 -0.424 -0.116 -3.958 -1.707 -2.929 + ML 547 545 3 550 6 1 1 28 47 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 548 545 3 550 6 1 1 28 47 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094 + D 549 545 3 550 6 0 0 25 44 -10.032 -8.730 -4.527 -5.209 -5.227 -0.153 + IL 550 550 5 550 6 1 1 30 48 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 551 551 6 551 5 1 1 29 48 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 160 ] 169 183 G C - - + MP 552 551 6 556 6 2 2 28 47 -8.957 -8.897 -0.023 -7.673 -7.953 -8.348 -3.982 -2.739 -4.040 0.680 -4.163 -4.370 0.296 -4.205 -3.787 3.384 -4.185 -0.424 -0.116 -3.958 -1.707 -2.929 + ML 553 551 6 556 6 1 1 26 45 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 554 551 6 556 6 1 1 26 45 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094 + D 555 551 6 556 6 0 0 23 42 -10.032 -8.730 -4.527 -5.209 -5.227 -0.153 + IL 556 556 5 556 6 1 1 28 46 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 557 557 6 557 5 1 1 27 46 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 161 ] 170 182 C G - - + MP 558 557 6 562 6 2 2 26 45 -8.957 -8.897 -0.023 -7.673 -7.953 -8.348 -3.809 -3.628 -3.614 0.055 -2.522 -4.118 3.229 -3.252 -3.648 0.446 -3.978 -1.567 1.053 -3.919 -0.220 -2.516 + ML 559 557 6 562 6 1 1 24 43 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 560 557 6 562 6 1 1 24 43 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094 + D 561 557 6 562 6 0 0 21 40 -10.032 -8.730 -4.527 -5.209 -5.227 -0.153 + IL 562 562 5 562 6 1 1 26 44 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 563 563 6 563 5 1 1 25 44 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 162 ] 171 181 c g - - + MP 564 563 6 568 6 2 2 24 43 -8.957 -8.897 -0.023 -7.673 -7.953 -8.348 -3.290 -3.151 -3.202 0.500 -2.284 -3.804 2.331 -2.948 -3.231 0.886 -3.633 -1.138 2.321 -3.436 0.020 -2.123 + ML 565 563 6 568 6 1 1 23 41 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 566 563 6 568 6 1 1 22 41 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094 + D 567 563 6 568 6 0 0 20 39 -10.032 -8.730 -4.527 -5.209 -5.227 -0.153 + IL 568 568 5 568 6 1 1 24 42 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 569 569 6 569 5 1 1 23 42 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000 + [ MATP 163 ] 172 180 C G - - + MP 570 569 6 574 6 2 2 22 41 -8.957 -8.897 -0.023 -7.673 -7.953 -8.348 -3.809 -3.628 -3.614 0.055 -2.522 -4.118 3.229 -3.252 -3.648 0.446 -3.978 -1.567 1.053 -3.919 -0.220 -2.516 + ML 571 569 6 574 6 1 1 21 40 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094 + MR 572 569 6 574 6 1 1 21 40 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094 + D 573 569 6 574 6 0 0 20 39 -10.032 -2.168 -4.527 -5.209 -5.227 -0.558 + IL 574 574 5 574 6 1 1 22 40 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000 + IR 575 575 6 575 5 1 1 21 40 -2.614 -0.420 -6.125 -4.293 -5.399 0.000 0.000 0.000 0.000 + [ MATP 164 ] 173 178 a u - - + MP 576 575 6 580 4 2 2 20 39 -6.641 -6.848 -0.066 -5.262 -2.755 -0.085 -2.866 2.365 -3.078 -3.817 0.879 -3.122 -2.870 1.909 -3.385 0.057 0.613 -3.071 -0.920 -1.875 + ML 577 575 6 580 4 1 1 21 39 -3.758 -3.940 -0.507 -2.670 0.368 -0.385 -0.191 0.094 + MR 578 575 6 580 4 1 1 20 39 -4.809 -3.838 -1.706 -0.766 0.368 -0.385 -0.191 0.094 + D 579 575 6 580 4 0 0 19 37 -5.159 -4.840 -2.856 -0.324 + IL 580 580 5 580 4 1 1 22 41 -1.686 -2.369 -1.117 -4.855 0.000 0.000 0.000 0.000 + IR 581 581 6 581 3 1 1 21 40 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 165 ] 174 - a - - - + ML 582 581 6 584 3 1 1 16 35 -7.682 -0.025 -6.336 0.628 -0.282 -0.863 0.114 + D 583 581 6 584 3 0 0 15 34 -6.956 -2.469 -0.302 + IL 584 584 3 584 3 1 1 20 38 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 166 ] 175 - g - - - + ML 585 584 3 587 3 1 1 15 33 -7.682 -0.170 -3.232 0.466 -1.209 0.614 -0.608 + D 586 584 3 587 3 0 0 14 33 -6.956 -2.469 -0.302 + IL 587 587 3 587 3 1 1 19 37 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 167 ] 176 - G - - - + ML 588 587 3 590 3 1 1 13 32 -7.539 -0.028 -6.193 -0.694 -1.749 1.395 -1.137 + D 589 587 3 590 3 0 0 12 31 -7.457 -1.247 -0.803 + IL 590 590 3 590 3 1 1 18 36 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000 + [ MATL 168 ] 177 - A - - - + ML 591 590 3 593 2 1 1 1 1 * 0.000 1.564 -1.813 -1.501 -1.306 + D 592 590 3 593 2 0 0 0 0 * 0.000 + IL 593 593 3 593 2 1 1 13 28 -1.823 -0.479 0.000 0.000 0.000 0.000 + [ END 169 ] - - - - - - + E 594 593 3 -1 0 0 0 0 0 +// +HMMER3/f [i1.1rc2 | December 2012] +NAME input +LENG 187 +MAXL 304 +ALPH RNA +RF no +MM no +CONS yes +CS yes +MAP yes +DATE Tue Apr 16 22:15:27 2013 +COM [1] /home/zw49/software/local/infernal1.1/bin/cmbuild -F /tmp/zw49/compute-2-8.local-2508-bigstep/per-work-unit/input.cm /tmp/zw49/compute-2-8.local-2508-bigstep/per-work-unit/input.sto +NSEQ 6 +EFFN 1.508789 +CKSUM 2893177742 +STATS LOCAL MSV -10.3323 0.71371 +STATS LOCAL VITERBI -12.3852 0.71371 +STATS LOCAL FORWARD -3.0615 0.71371 +HMM A C G U + m->m m->i m->d i->m i->i d->m d->d + COMPO 1.30728 1.49297 1.29342 1.46789 + 1.38629 1.38629 1.38629 1.38629 + 0.14835 3.73090 2.17244 1.46634 0.26236 0.00000 * + 1 2.11570 0.43708 2.66278 1.80924 1 C - - : + 1.38629 1.38629 1.38629 1.38629 + 0.05412 3.63667 3.63667 1.46634 0.26236 1.90976 0.16030 + 2 1.32597 1.33794 2.03909 1.07317 2 u - - : + 1.38629 1.38629 1.38629 1.38629 + 0.05412 3.63667 3.63667 1.46634 0.26236 1.90976 0.16030 + 3 1.72876 1.02071 2.25307 1.02980 3 c - - : + 1.38629 1.38629 1.38629 1.38629 + 0.05412 3.63667 3.63667 1.46634 0.26236 1.90976 0.16030 + 4 2.11570 0.43708 2.66278 1.80924 4 C - - : + 1.38629 1.38629 1.38629 1.38629 + 0.05412 3.63667 3.63667 1.46634 0.26236 1.90976 0.16030 + 5 2.05126 2.11661 2.53611 0.39777 5 U - - : + 1.38629 1.38629 1.38629 1.38629 + 0.05412 3.63667 3.63667 1.46634 0.26236 1.90976 0.16030 + 6 1.55682 2.00239 1.01689 1.22941 6 g - - : + 1.38629 1.38629 1.38629 1.38629 + 0.05412 3.63667 3.63667 1.46634 0.26236 1.90976 0.16030 + 7 1.31254 2.32412 0.72593 1.90302 7 g - - : + 1.38629 1.38629 1.38629 1.38629 + 0.05412 3.63667 3.63667 1.46634 0.26236 1.90976 0.16030 + 8 0.64958 2.22235 1.56406 1.83199 8 A - - : + 1.38629 1.38629 1.38629 1.38629 + 0.05412 3.63667 3.63667 1.46634 0.26236 1.90976 0.16030 + 9 2.14602 1.23410 1.92443 0.80745 9 u - - < + 1.38629 1.38629 1.38629 1.38629 + 0.05412 3.63667 3.63667 1.46634 0.26236 1.90976 0.16030 + 10 1.79261 1.51140 0.83813 1.71282 10 g - - < + 1.38629 1.38629 1.38629 1.38629 + 0.05412 3.63667 3.63667 1.46634 0.26236 1.90976 0.16030 + 11 1.42926 2.08630 0.70693 1.94344 11 g - - < + 1.38629 1.38629 1.38629 1.38629 + 0.05412 3.63667 3.63667 1.46634 0.26236 1.90976 0.16030 + 12 1.17667 1.63657 1.35437 1.43154 12 a - - < + 1.38629 1.38629 1.38629 1.38629 + 0.05412 3.63667 3.63667 1.46634 0.26236 1.90976 0.16030 + 13 1.60611 1.88092 1.67927 0.77572 13 u - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.05412 3.63667 3.63667 1.46634 0.26236 1.90976 0.16030 + 14 1.06446 2.21551 0.96647 1.79839 14 g - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.05412 3.63667 3.63667 1.46634 0.26236 1.90976 0.16030 + 15 0.30920 2.62269 2.40823 2.26932 15 A - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.16361 3.63667 2.08273 1.46634 0.26236 1.90976 0.16030 + 16 1.91608 0.55334 2.44812 1.65372 16 C - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.06020 3.53326 3.53326 1.46634 0.26236 0.79568 0.60016 + 17 0.30920 2.62269 2.40823 2.26932 17 A - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.05412 3.63667 3.63667 1.46634 0.26236 1.90976 0.16030 + 18 2.05126 2.11661 2.53611 0.39777 18 U - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.05412 3.63667 3.63667 1.46634 0.26236 1.90976 0.16030 + 19 0.64958 2.22235 1.56406 1.83199 19 A - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.05412 3.63667 3.63667 1.46634 0.26236 1.90976 0.16030 + 20 0.70433 1.70223 2.04251 1.64205 20 a - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.05412 3.63667 3.63667 1.46634 0.26236 1.90976 0.16030 + 21 1.62065 1.52996 1.46295 1.03809 21 u - - > + 1.38629 1.38629 1.38629 1.38629 + 0.05412 3.63667 3.63667 1.46634 0.26236 1.90976 0.16030 + 22 2.16916 0.76427 1.89402 1.31086 22 c - - > + 1.38629 1.38629 1.38629 1.38629 + 0.05412 3.63667 3.63667 1.46634 0.26236 1.90976 0.16030 + 23 1.94473 1.42583 1.36889 1.01535 23 u - - > + 1.38629 1.38629 1.38629 1.38629 + 0.05412 3.63667 3.63667 1.46634 0.26236 1.90976 0.16030 + 24 0.85012 2.08608 1.19400 1.92789 24 a - - > + 1.38629 1.38629 1.38629 1.38629 + 0.05412 3.63667 3.63667 1.46634 0.26236 1.90976 0.16030 + 25 2.05126 2.11661 2.53611 0.39777 25 U - - , + 1.38629 1.38629 1.38629 1.38629 + 0.05412 3.63667 3.63667 1.46634 0.26236 1.90976 0.16030 + 26 0.30920 2.62269 2.40823 2.26932 26 A - - , + 1.38629 1.38629 1.38629 1.38629 + 0.05412 3.63667 3.63667 1.46634 0.26236 0.35130 1.21662 + 27 2.31412 0.35020 2.87329 1.96551 27 C - - , + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 28 0.89488 1.64498 2.02232 1.32434 28 a - - , + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 29 2.31412 0.35020 2.87329 1.96551 29 C - - , + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 30 0.60542 2.13482 2.13962 1.52239 30 A - - , + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 31 0.25342 2.79532 2.56381 2.45631 31 A - - , + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 32 0.60377 2.13643 2.14058 1.52513 32 A - - , + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 33 0.25342 2.79532 2.56381 2.45631 33 A - - , + 1.38629 1.38629 1.38629 1.38629 + 0.14775 2.17696 3.73090 0.84300 0.56285 1.09861 0.40547 + 34 1.80750 1.37139 2.32284 0.72528 36 u - - , + 1.38629 1.38629 1.38629 1.38629 + 0.14775 3.73090 2.17696 1.46634 0.26236 1.09861 0.40547 + 35 1.35271 0.91170 2.15115 1.49937 37 c - - , + 1.38629 1.38629 1.38629 1.38629 + 0.05409 3.63724 3.63724 1.46634 0.26236 1.90659 0.16086 + 36 0.30883 2.62370 2.40915 2.27041 38 A - - , + 1.38629 1.38629 1.38629 1.38629 + 0.05409 3.63724 3.63724 1.46634 0.26236 0.35265 1.21344 + 37 2.26150 1.35541 1.99974 0.68797 39 U - - < + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 38 2.52061 1.58785 2.21484 0.50078 40 U - - < + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 39 2.75829 0.37762 2.47405 1.79059 41 C - - < + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 40 0.55631 2.33071 1.67406 1.95217 42 A - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 41 0.60542 2.13482 2.13962 1.52239 43 A - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 42 2.23080 3.03435 0.26037 2.60791 44 G - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 43 0.60542 2.13482 2.13962 1.52239 45 A - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 44 2.20391 2.23973 2.70000 0.33416 46 U - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 45 1.43869 2.47812 0.59532 2.05983 47 G - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 46 2.31412 0.35020 2.87329 1.96551 48 C - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 47 0.25342 2.79532 2.56381 2.45631 49 A - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 48 1.59805 1.93895 1.40717 0.89400 50 u - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.25784 3.73090 1.59301 1.46634 0.26236 1.09861 0.40547 + 49 1.91608 0.55334 2.44812 1.65372 51 C - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.06020 3.53326 3.53326 1.46634 0.26236 0.21172 1.65647 + 50 2.23080 3.03435 0.26037 2.60791 52 G - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 51 0.25342 2.79532 2.56381 2.45631 53 A - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.20994 3.73090 1.79944 1.46634 0.26236 1.09861 0.40547 + 52 0.96807 1.35915 1.98910 1.48506 54 a - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.05746 3.57843 3.57843 1.46634 0.26236 0.25454 1.49286 + 53 2.23080 3.03435 0.26037 2.60791 55 G - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.22291 3.73090 1.73816 1.46634 0.26236 1.09861 0.40547 + 54 1.01894 2.14800 1.06314 1.73196 56 a - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.05819 3.56618 3.56618 1.46634 0.26236 0.24110 1.54069 + 55 1.83636 0.84009 2.37795 1.15140 57 c - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 56 2.23080 3.03435 0.26037 2.60791 58 G - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 57 2.23080 3.03435 0.26037 2.60791 59 G - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 58 2.31412 0.35020 2.87329 1.96551 60 C - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 59 0.25342 2.79532 2.56381 2.45631 61 A - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 60 0.71268 2.26052 1.38529 1.86354 62 a - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 61 2.31412 0.35020 2.87329 1.96551 63 C - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 62 2.20391 2.23973 2.70000 0.33416 64 U - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 63 2.05847 2.63533 0.32924 2.51106 65 G - - > + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 64 0.57260 2.38516 1.42472 2.27017 66 A - - > + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 65 1.03929 2.15720 0.91753 2.03146 67 g - - > + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 66 1.35756 1.88092 1.70192 0.89666 68 u - - , + 1.38629 1.38629 1.38629 1.38629 + 0.13002 3.73090 2.32333 1.46634 0.26236 1.09861 0.40547 + 67 2.07832 2.85321 0.31627 2.42657 69 G - - , + 1.38629 1.38629 1.38629 1.38629 + 0.05316 3.65405 3.65405 1.46634 0.26236 1.80600 0.17950 + 68 0.64986 1.78382 2.07092 1.69381 70 A - - , + 1.38629 1.38629 1.38629 1.38629 + 0.05316 3.65405 3.65405 1.46634 0.26236 1.80600 0.17950 + 69 1.33258 2.34981 0.70213 1.92903 71 g - - , + 1.38629 1.38629 1.38629 1.38629 + 0.05316 3.65405 3.65405 1.46634 0.26236 1.80600 0.17950 + 70 2.07880 2.13864 2.56584 0.38529 72 U - - , + 1.38629 1.38629 1.38629 1.38629 + 0.14606 2.20723 3.65405 0.41841 1.07322 1.80600 0.17950 + 71 1.97792 0.91987 1.51918 1.40985 74 c - - < + 1.38629 1.38629 1.38629 1.38629 + 0.05316 3.65405 3.65405 1.46634 0.26236 1.80600 0.17950 + 72 2.62324 0.43580 2.31869 1.70220 75 C - - < + 1.38629 1.38629 1.38629 1.38629 + 0.05316 3.65405 3.65405 1.46634 0.26236 1.80600 0.17950 + 73 2.39968 0.52502 2.18788 1.58205 76 C - - < + 1.38629 1.38629 1.38629 1.38629 + 0.05316 3.65405 3.65405 1.46634 0.26236 1.80600 0.17950 + 74 2.04184 1.01359 1.50091 1.25748 77 c - - < + 1.38629 1.38629 1.38629 1.38629 + 0.14606 3.65405 2.20723 1.46634 0.26236 1.80600 0.17950 + 75 1.15416 2.00380 0.90595 1.92622 78 g - - < + 1.38629 1.38629 1.38629 1.38629 + 0.05819 3.56618 3.56618 1.46634 0.26236 0.78702 0.60734 + 76 2.21525 2.60981 0.30066 2.56404 79 G - - < + 1.38629 1.38629 1.38629 1.38629 + 0.05316 3.65405 3.65405 1.46634 0.26236 1.80600 0.17950 + 77 2.07832 2.85321 0.31627 2.42657 80 G - - - + 1.38629 1.38629 1.38629 1.38629 + 0.05316 3.65405 3.65405 1.46634 0.26236 1.80600 0.17950 + 78 0.29810 2.65403 2.43652 2.30314 81 A - - - + 1.38629 1.38629 1.38629 1.38629 + 0.05316 3.65405 3.65405 1.46634 0.26236 1.80600 0.17950 + 79 1.69853 2.30822 0.49696 2.21426 82 G - - < + 1.38629 1.38629 1.38629 1.38629 + 0.05316 3.65405 3.65405 1.46634 0.26236 1.80600 0.17950 + 80 2.43052 0.50695 2.21458 1.60703 83 C - - < + 1.38629 1.38629 1.38629 1.38629 + 0.05316 3.65405 3.65405 1.46634 0.26236 1.80600 0.17950 + 81 1.75670 1.43975 1.61499 0.93776 84 u - - < + 1.38629 1.38629 1.38629 1.38629 + 0.05316 3.65405 3.65405 1.46634 0.26236 1.80600 0.17950 + 82 2.00114 1.45696 1.38713 0.96211 85 u - - < + 1.38629 1.38629 1.38629 1.38629 + 0.05316 3.65405 3.65405 1.46634 0.26236 1.80600 0.17950 + 83 0.66943 2.14730 1.38955 2.10362 86 A - - < + 1.38629 1.38629 1.38629 1.38629 + 0.05316 3.65405 3.65405 1.46634 0.26236 1.80600 0.17950 + 84 2.08965 0.89055 1.41216 1.50407 87 c - - < + 1.38629 1.38629 1.38629 1.38629 + 0.05316 3.65405 3.65405 1.46634 0.26236 1.80600 0.17950 + 85 0.68681 2.04682 2.06422 1.42396 88 A - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.05316 3.65405 3.65405 1.46634 0.26236 1.80600 0.17950 + 86 1.30242 1.85207 1.67360 0.95804 89 u - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.05316 3.65405 3.65405 1.46634 0.26236 1.80600 0.17950 + 87 1.28245 1.56856 1.67906 1.11551 90 u - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.05316 3.65405 3.65405 1.46634 0.26236 1.80600 0.17950 + 88 0.64430 2.08251 2.08361 1.48778 91 A - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.22877 1.72258 3.65405 0.26828 1.44688 1.80600 0.17950 + 89 1.75084 1.53624 0.79105 1.84631 93 g - - > + 1.38629 1.38629 1.38629 1.38629 + 0.05316 3.65405 3.65405 1.46634 0.26236 1.80600 0.17950 + 90 2.33658 1.62154 1.96533 0.56980 94 U - - > + 1.38629 1.38629 1.38629 1.38629 + 0.05316 3.65405 3.65405 1.46634 0.26236 1.80600 0.17950 + 91 1.09523 1.52223 1.29011 1.75983 95 a - - > + 1.38629 1.38629 1.38629 1.38629 + 0.05316 3.65405 3.65405 1.46634 0.26236 1.80600 0.17950 + 92 1.06967 1.78800 1.27231 1.56351 96 a - - > + 1.38629 1.38629 1.38629 1.38629 + 0.05316 3.65405 3.65405 1.46634 0.26236 1.80600 0.17950 + 93 1.64739 2.37962 0.50077 2.21827 97 G - - > + 1.38629 1.38629 1.38629 1.38629 + 0.05316 3.65405 3.65405 1.46634 0.26236 1.80600 0.17950 + 94 2.44398 1.44070 2.12181 0.58589 98 U - - > + 1.38629 1.38629 1.38629 1.38629 + 0.05316 3.65405 3.65405 1.46634 0.26236 1.80600 0.17950 + 95 2.07832 2.85321 0.31627 2.42657 99 G - - - + 1.38629 1.38629 1.38629 1.38629 + 0.05316 3.65405 3.65405 1.46634 0.26236 1.80600 0.17950 + 96 0.59749 2.26015 1.64902 1.87578 100 A - - - + 1.38629 1.38629 1.38629 1.38629 + 0.05316 3.65405 3.65405 1.46634 0.26236 1.80600 0.17950 + 97 2.78267 0.34940 2.43728 1.92678 101 C - - > + 1.38629 1.38629 1.38629 1.38629 + 0.14606 3.65405 2.20723 1.46634 0.26236 1.80600 0.17950 + 98 2.15352 1.05042 1.82199 0.98771 102 u - - > + 1.38629 1.38629 1.38629 1.38629 + 0.05819 3.56618 3.56618 1.46634 0.26236 0.78702 0.60734 + 99 1.64582 1.63174 0.80191 1.81350 103 g - - > + 1.38629 1.38629 1.38629 1.38629 + 0.05316 3.65405 3.65405 1.46634 0.26236 1.80600 0.17950 + 100 1.59309 2.34987 0.52964 2.18477 104 G - - > + 1.38629 1.38629 1.38629 1.38629 + 0.05316 3.65405 3.65405 1.46634 0.26236 1.80600 0.17950 + 101 1.96886 2.48060 0.37943 2.38120 105 G - - > + 1.38629 1.38629 1.38629 1.38629 + 0.05316 3.65405 3.65405 1.46634 0.26236 1.80600 0.17950 + 102 1.46267 1.88137 0.80969 1.76606 106 g - - > + 1.38629 1.38629 1.38629 1.38629 + 0.05316 3.65405 3.65405 1.46634 0.26236 1.80600 0.17950 + 103 1.39548 1.88443 2.12539 0.73192 107 u - - , + 1.38629 1.38629 1.38629 1.38629 + 0.16056 3.65405 2.10011 1.46634 0.26236 1.80600 0.17950 + 104 1.88526 2.62022 0.40932 2.19535 108 G - - , + 1.38629 1.38629 1.38629 1.38629 + 0.05901 3.55251 3.55251 1.46634 0.26236 2.28402 0.10744 + 105 0.36869 2.47430 2.27382 2.11017 109 A - - , + 1.38629 1.38629 1.38629 1.38629 + 0.05901 3.55251 3.55251 1.46634 0.26236 2.28402 0.10744 + 106 1.20481 2.20099 0.86528 1.78008 110 g - - , + 1.38629 1.38629 1.38629 1.38629 + 0.05901 3.55251 3.55251 1.46634 0.26236 2.28402 0.10744 + 107 1.68331 1.43160 2.18223 0.77105 111 u - - , + 1.38629 1.38629 1.38629 1.38629 + 0.05901 3.55251 3.55251 1.46634 0.26236 0.22784 1.59088 + 108 2.23080 3.03435 0.26037 2.60791 112 G - - , + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 109 0.25342 2.79532 2.56381 2.45631 113 A - - , + 1.38629 1.38629 1.38629 1.38629 + 0.23598 3.73090 1.68074 1.46634 0.26236 1.09861 0.40547 + 110 2.27362 0.77823 1.96037 1.21391 114 c - - < + 1.38629 1.38629 1.38629 1.38629 + 0.05893 3.55385 3.55385 1.46634 0.26236 2.27923 0.10799 + 111 0.80425 1.99844 1.28503 1.96334 115 a - - < + 1.38629 1.38629 1.38629 1.38629 + 0.05893 3.55385 3.55385 1.46634 0.26236 2.27923 0.10799 + 112 0.80447 1.99811 1.28519 1.96263 116 a - - < + 1.38629 1.38629 1.38629 1.38629 + 0.05893 3.55385 3.55385 1.46634 0.26236 2.27923 0.10799 + 113 0.80459 1.99793 1.28528 1.96224 117 a - - < + 1.38629 1.38629 1.38629 1.38629 + 0.05893 3.55385 3.55385 1.46634 0.26236 2.27923 0.10799 + 114 2.27233 1.42702 1.90917 0.67589 118 U - - < + 1.38629 1.38629 1.38629 1.38629 + 0.05893 3.55385 3.55385 1.46634 0.26236 2.27923 0.10799 + 115 2.27189 0.77040 1.96264 1.22564 119 c - - < + 1.38629 1.38629 1.38629 1.38629 + 0.05893 3.55385 3.55385 1.46634 0.26236 2.27923 0.10799 + 116 2.07252 1.19115 1.84521 0.88608 120 u - - < + 1.38629 1.38629 1.38629 1.38629 + 0.05893 3.55385 3.55385 1.46634 0.26236 2.27923 0.10799 + 117 2.10967 2.40987 0.36279 2.37342 121 G - - < + 1.38629 1.38629 1.38629 1.38629 + 0.05893 3.55385 3.55385 1.46634 0.26236 2.27923 0.10799 + 118 1.92365 2.01593 2.39737 0.46239 122 U - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.05893 3.55385 3.55385 1.46634 0.26236 2.27923 0.10799 + 119 1.95422 0.52833 2.48935 1.68322 123 C - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.05893 3.55385 3.55385 1.46634 0.26236 2.27923 0.10799 + 120 1.00496 1.68195 1.50413 1.48847 124 a - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.05893 3.55385 3.55385 1.46634 0.26236 2.27923 0.10799 + 121 1.88774 2.62324 0.40792 2.19833 125 G - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.05893 3.55385 3.55385 1.46634 0.26236 2.27923 0.10799 + 122 1.88774 2.62324 0.40792 2.19833 126 G - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.05893 3.55385 3.55385 1.46634 0.26236 2.27923 0.10799 + 123 0.36766 2.47663 2.27594 2.11265 127 A - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.05893 3.55385 3.55385 1.46634 0.26236 2.27923 0.10799 + 124 0.74328 2.13870 1.46499 1.73977 128 a - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.05893 3.55385 3.55385 1.46634 0.26236 0.22907 1.58608 + 125 2.45394 0.43456 2.24198 1.83105 129 C - - > + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 126 0.94631 2.01987 1.12409 1.86945 130 a - - > + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 127 1.67685 2.13091 0.57163 2.04250 131 G - - > + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 128 0.78112 2.04753 1.27907 2.00427 132 a - - > + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 129 2.02651 1.52368 1.82936 0.71380 133 u - - > + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 130 2.16524 1.53065 1.69871 0.72162 134 u - - > + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 131 2.16152 1.42731 1.84217 0.72067 135 u - - > + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 132 1.67321 1.89337 0.64909 1.97133 136 G - - > + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 133 0.25342 2.79532 2.56381 2.45631 137 A - - , + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 134 0.25342 2.79532 2.56381 2.45631 138 A - - , + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 135 2.76603 0.37626 2.47707 1.79172 139 C - - < + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 136 1.44403 2.22997 0.62453 2.11211 140 G - - < + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 137 1.74548 0.96864 1.57882 1.42869 141 c - - < + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 138 1.56914 1.25678 1.42281 1.32361 142 c - - < + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 139 1.65005 1.46465 1.12384 1.37923 143 g - - < + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 140 1.67386 1.09353 1.65442 1.25092 144 c - - < + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 141 1.60283 2.04782 0.98636 1.21494 145 g - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 142 1.62010 2.08572 0.91058 1.28876 146 g - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.14775 3.73090 2.17696 1.46634 0.26236 1.09861 0.40547 + 143 0.91467 1.39111 2.01812 1.52488 147 a - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.05409 3.63724 3.63724 1.46634 0.26236 0.35265 1.21344 + 144 1.30130 1.82130 1.01359 1.59410 148 g - - > + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 145 1.51751 1.40438 1.29337 1.34370 149 g - - > + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 146 1.52872 1.47255 1.11120 1.49307 150 g - - > + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 147 1.66159 1.58776 0.92502 1.56420 151 g - - > + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 148 2.34487 0.78961 2.04367 1.13766 152 c - - > + 1.38629 1.38629 1.38629 1.38629 + 0.04913 3.73090 3.73090 1.46634 0.26236 1.09861 0.40547 + 149 2.06400 2.64137 0.32673 2.51934 153 G - - > + 1.38629 1.38629 1.38629 1.38629 + 0.23598 3.73090 1.68074 1.46634 0.26236 1.09861 0.40547 + 150 2.11481 2.41336 0.36068 2.37919 154 G - - < + 1.38629 1.38629 1.38629 1.38629 + 0.05893 3.55385 3.55385 1.46634 0.26236 2.27923 0.10799 + 151 2.26500 0.77681 1.92780 1.23501 155 c - - < + 1.38629 1.38629 1.38629 1.38629 + 0.05893 3.55385 3.55385 1.46634 0.26236 2.27923 0.10799 + 152 2.47359 0.51807 2.12943 1.60373 156 C - - < + 1.38629 1.38629 1.38629 1.38629 + 0.05893 3.55385 3.55385 1.46634 0.26236 2.27923 0.10799 + 153 2.47221 0.51840 2.12902 1.60357 157 C - - < + 1.38629 1.38629 1.38629 1.38629 + 0.05893 3.55385 3.55385 1.46634 0.26236 2.27923 0.10799 + 154 1.53769 2.01745 0.93772 1.34473 158 g - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.05893 3.55385 3.55385 1.46634 0.26236 2.27923 0.10799 + 155 1.32116 1.50534 2.00080 0.97815 159 u - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.05893 3.55385 3.55385 1.46634 0.26236 2.27923 0.10799 + 156 1.22612 1.61229 1.28249 1.47056 160 a - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.05893 3.55385 3.55385 1.46634 0.26236 2.27923 0.10799 + 157 0.36766 2.47663 2.27594 2.11265 161 A - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.05893 3.55385 3.55385 1.46634 0.26236 2.27923 0.10799 + 158 1.87031 2.28956 0.45105 2.22883 162 G - - > + 1.38629 1.38629 1.38629 1.38629 + 0.05893 3.55385 3.55385 1.46634 0.26236 2.27923 0.10799 + 159 1.87019 2.28945 0.45113 2.22865 163 G - - > + 1.38629 1.38629 1.38629 1.38629 + 0.05893 3.55385 3.55385 1.46634 0.26236 2.27923 0.10799 + 160 1.44701 2.08387 0.67682 2.02459 164 G - - > + 1.38629 1.38629 1.38629 1.38629 + 0.05893 3.55385 3.55385 1.46634 0.26236 2.27923 0.10799 + 161 2.59119 0.42101 2.23451 1.82237 165 C - - > + 1.38629 1.38629 1.38629 1.38629 + 0.05893 3.55385 3.55385 1.46634 0.26236 2.27923 0.10799 + 162 1.88774 2.62324 0.40792 2.19833 166 G - - , + 1.38629 1.38629 1.38629 1.38629 + 0.05893 3.55385 3.55385 1.46634 0.26236 2.27923 0.10799 + 163 0.36766 2.47663 2.27594 2.11265 167 A - - , + 1.38629 1.38629 1.38629 1.38629 + 0.05893 3.55385 3.55385 1.46634 0.26236 2.27923 0.10799 + 164 2.10482 2.40656 0.36480 2.36798 168 G - - < + 1.38629 1.38629 1.38629 1.38629 + 0.05893 3.55385 3.55385 1.46634 0.26236 2.27923 0.10799 + 165 2.10517 2.40679 0.36465 2.36837 169 G - - < + 1.38629 1.38629 1.38629 1.38629 + 0.05893 3.55385 3.55385 1.46634 0.26236 2.27923 0.10799 + 166 2.46939 0.51908 2.12818 1.60325 170 C - - < + 1.38629 1.38629 1.38629 1.38629 + 0.05893 3.55385 3.55385 1.46634 0.26236 2.27923 0.10799 + 167 2.18286 1.08692 1.84373 0.93700 171 u - - < + 1.38629 1.38629 1.38629 1.38629 + 0.05893 3.55385 3.55385 1.46634 0.26236 2.27923 0.10799 + 168 2.47090 0.51872 2.12863 1.60342 172 C - - < + 1.38629 1.38629 1.38629 1.38629 + 0.05893 3.55385 3.55385 1.46634 0.26236 0.88853 0.52977 + 169 0.93336 1.99448 1.15654 1.85718 173 a - - < + 1.38629 1.38629 1.38629 1.38629 + 0.05412 3.63667 3.63667 1.46634 0.26236 1.90976 0.16030 + 170 0.95377 1.58195 1.97974 1.30550 174 a - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.05412 3.63667 3.63667 1.46634 0.26236 1.90976 0.16030 + 171 1.06446 2.21551 0.96647 1.79839 175 g - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.16361 3.63667 2.08273 1.46634 0.26236 1.90976 0.16030 + 172 1.85004 2.57723 0.42977 2.15308 176 G - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.06020 3.53326 3.53326 1.46634 0.26236 0.79568 0.60016 + 173 0.30920 2.62269 2.40823 2.26932 177 A - - _ + 1.38629 1.38629 1.38629 1.38629 + 0.05412 3.63667 3.63667 1.46634 0.26236 1.90976 0.16030 + 174 2.07834 1.19039 1.80208 0.90188 178 u - - > + 1.38629 1.38629 1.38629 1.38629 + 0.05412 3.63667 3.63667 1.46634 0.26236 1.90976 0.16030 + 175 1.86955 2.28893 0.45151 2.22779 180 G - - > + 1.38629 1.38629 1.38629 1.38629 + 0.14175 3.63667 2.24597 1.46634 0.26236 1.90976 0.16030 + 176 1.09154 2.00072 0.95033 1.94877 181 g - - > + 1.38629 1.38629 1.38629 1.38629 + 0.05893 3.55385 3.55385 1.46634 0.26236 2.27923 0.10799 + 177 1.86692 2.28679 0.45309 2.22424 182 G - - > + 1.38629 1.38629 1.38629 1.38629 + 0.05893 3.55385 3.55385 1.46634 0.26236 2.27923 0.10799 + 178 2.57267 0.42502 2.22862 1.81870 183 C - - > + 1.38629 1.38629 1.38629 1.38629 + 0.05893 3.55385 3.55385 1.46634 0.26236 2.27923 0.10799 + 179 2.55903 0.42804 2.22422 1.81596 184 C - - > + 1.38629 1.38629 1.38629 1.38629 + 0.05893 3.55385 3.55385 1.46634 0.26236 0.88853 0.52977 + 180 1.40041 2.37364 0.65710 1.95186 185 G - - : + 1.38629 1.38629 1.38629 1.38629 + 0.05412 3.63667 3.63667 1.46634 0.26236 1.90976 0.16030 + 181 0.82680 2.17963 1.27399 1.77339 186 a - - : + 1.38629 1.38629 1.38629 1.38629 + 0.05412 3.63667 3.63667 1.46634 0.26236 1.90976 0.16030 + 182 2.04450 2.81271 0.33054 2.38617 187 G - - : + 1.38629 1.38629 1.38629 1.38629 + 0.05412 3.63667 3.63667 1.46634 0.26236 1.90976 0.16030 + 183 1.44108 1.88263 2.13530 0.70739 188 u - - : + 1.38629 1.38629 1.38629 1.38629 + 0.05412 3.63667 3.63667 1.46634 0.26236 1.90976 0.16030 + 184 0.59783 2.25031 1.66146 1.86584 189 A - - : + 1.38629 1.38629 1.38629 1.38629 + 0.05412 3.63667 3.63667 1.46634 0.26236 1.90976 0.16030 + 185 1.31235 1.88718 1.37190 1.12181 190 u - - : + 1.38629 1.38629 1.38629 1.38629 + 0.05412 3.63667 3.63667 1.46634 0.26236 1.90976 0.16030 + 186 1.38169 1.13922 2.07801 1.19205 191 c - - : + 1.38629 1.38629 1.38629 1.38629 + 0.05412 3.63667 3.63667 1.46634 0.26236 1.90976 0.16030 + 187 2.05126 2.11661 2.53611 0.39777 192 U - - : + 1.38629 1.38629 1.38629 1.38629 + 0.02743 3.60998 * 1.46634 0.26236 0.00000 * +// diff --git a/testsuite/bug-i36.pl b/testsuite/bug-i36.pl new file mode 100644 index 00000000..9e4d5745 --- /dev/null +++ b/testsuite/bug-i36.pl @@ -0,0 +1,61 @@ +#! /usr/bin/perl + +# bug i36 - HMM banded traceback would (very rarely) fail due +# to an out-of-bounds DP cell being used in the traceback. +# +# EPN, Fri Apr 19 10:58:21 2013 +# +# i36.1: fasta file to test for bug (sequence reported by Zasha) +# i36.2: fasta file to test for bug (sequence found in Rfamseq) + +$usage = "perl bug-i36.pl \n"; +if ($#ARGV != 1) { die "Wrong argument number.\n$usage"; } + +$cmsearch = shift; +$cmfile = shift; +$ok = 1; + +# Make our test sequence file, i33.1 +# +open (OUT, ">i36.1") || die; +print OUT <problemsequence +UCAUAGUUACCCCGGGUUAUAGCCAUUCAUCUGUAGAUACUCAGAUAAAUCUAUACAAAAAUCAGGCCAUCAAAAAAGAC +AGUGUUCUGACACCAGCAUAUCCUGUUUAGUUCGCAGAGCAAAAUAGUCAACAACGCUGCGGCUGCAAGUACGACAUAUC +UAUUCUCUAAGUAAUUGCUGUUGCAGCUAGGCGACAAGAGUUCUAGUCCCCAGGAGCAUAGUUCACUAUGUGACUGGGGC +UAGGACGUGAAGUCAACAACGCUGCGGCUGCAAGCACGACAUAUGUAUCCUCUAAGUAAUUGCUGUUGCAGCUAGGCGAC +AAGAGUUCUAGUCCUCAGGAGCAUAGUUCACUAUGUGACUGGGGUUAGGACGUGAAGUCAACAACGCUGCGGCAGUAAGU +END +close OUT; +open (OUT, ">i36.2") || die; +print OUT <AFCV01000838.1/1524-1401 Salmonella enterica subsp. enterica serovar Uganda str. R8-3404 Contig838, whole genome shotgun sequence. +CTGAGGATGTTTTTACAATAACGATACGCAACATCATTCGGGATGCATCGCGGCGGTAAG +CGAGGAAATCTCCAGGAGCATAGATAACGATGTGANNNCACACACTTAATTAATTAAGTG +TGTG +END +close OUT; + +if ($ok) { + $output = `$cmsearch --tau 1E-5 --toponly --cyk --cpu 0 --notrunc --rfam $cmfile i36.1`; + if ($? != 0) { $ok = 0; } + # make sure output includes an 'ok' string indictating success + if($output !~ /\n.ok.\n/) { + $ok = 0; + } + + $output = `$cmsearch --cpu 0 $cmfile i36.2`; + if ($? != 0) { $ok = 0; } + # make sure output includes an 'ok' string indictating success + if($output !~ /\n.ok.\n/) { + $ok = 0; + } +} + +foreach $tmpfile ("i36.1", "i36.2") { + unlink $tmpfile if -e $tmpfile; +} +if ($ok) { print "ok\n"; exit 0; } +else { print "FAILED\n"; exit 1; } + + diff --git a/testsuite/dev_testsuite.sqc b/testsuite/dev_testsuite.sqc index 500c122e..ad4a068b 100644 --- a/testsuite/dev_testsuite.sqc +++ b/testsuite/dev_testsuite.sqc @@ -80,6 +80,7 @@ 1 exercise bug/i32-refine-ss perl !testsuite/bug-i32.pl! @src/cmbuild@ 1 exercise bug/i33-cmsearch-A perl !testsuite/bug-i33.pl! @src/cmsearch@ @src/cmbuild@ !testsuite/bug-i33.cm! 1 exercise bug/i34-cmalign-EL perl !testsuite/bug-i34.pl! @src/cmalign@ !testsuite/bug-i34.cm! +1 exercise bug/i36-hbanded-tb perl !testsuite/bug-i36.pl! @src/cmsearch@ !testsuite/bug-i36.cm! ################################################################ # Option tests diff --git a/testsuite/testsuite.sqc b/testsuite/testsuite.sqc index c0ab2b57..2ef40838 100644 --- a/testsuite/testsuite.sqc +++ b/testsuite/testsuite.sqc @@ -64,6 +64,7 @@ 1 exercise bug/i32-refine-ss perl !testsuite/bug-i32.pl! @src/cmbuild@ 1 exercise bug/i33-cmsearch-A perl !testsuite/bug-i33.pl! @src/cmsearch@ @src/cmbuild@ !testsuite/bug-i33.cm! 1 exercise bug/i34-cmalign-EL perl !testsuite/bug-i34.pl! @src/cmalign@ !testsuite/bug-i34.cm! +1 exercise bug/i36-hbanded-tb perl !testsuite/bug-i36.pl! @src/cmsearch@ !testsuite/bug-i36.cm! ################################################################ # Option tests From d50b693097909b63d868994b1a8e18caf73bfdb6 Mon Sep 17 00:00:00 2001 From: Eric Nawrocki Date: Tue, 28 May 2013 19:18:58 +0000 Subject: [PATCH 17/82] Minor changes to rmark made during preparation of infernal 1.1 app note. git-svn-id: https://svn.janelia.org/eddylab/eddys/src/infernal/branches/1.1@4463 db3e70e4-12e1-0310-b23f-81a6e3d09ba7 --- rmark/rmark-Rroc.pl | 285 +++++++++++++++++++++++++++++--------------------- rmark/rmark-master.pl | 12 +-- rmark/rmark-pp.sh | 11 +- rmark/x-cmsearch | 4 +- rmark/x-nhmmer | 12 ++- 5 files changed, 189 insertions(+), 135 deletions(-) diff --git a/rmark/rmark-Rroc.pl b/rmark/rmark-Rroc.pl index c254947b..efb9c715 100644 --- a/rmark/rmark-Rroc.pl +++ b/rmark/rmark-Rroc.pl @@ -14,18 +14,28 @@ # Example usage: # > perl rmark-Rroc.pl -R rmark-2.list 1 rmark-2.pdf 0 RMARK3_results use Getopt::Std; -getopts('R'); +getopts('RPLM:'); if (defined $opt_R) { $replace_underscores = 1; } +if (defined $opt_P) { $paper_mode = 1; } +if (defined $opt_L) { $lty_mode = 1; } +if (defined $opt_M) { $perMb_mode = 1; $numMb = $opt_M; } my $usage = "Usage: perl rmark-Rroc.pl [OPTIONS] <1/0 yes/no draw error-bars> \n"; -$usage .= "\nFormat of list file:\n\t \n\n"; +$usage .= "\nFormat of list file:\n\t \n\n"; $usage .= "\nExample:\n\tinf1p02-df r2-i1p02 green\n\n"; $usage .= "/.em$key.xy, /.em$key.mer and /.time must exist\n\n"; +$usage .= "Options:\n\t"; +$usage .= "-R : replace underscores in with spaces\n\t"; +$usage .= "-P : run in 'paper' mode, create a smaller PDF for a Bioinformatics Applications Note\n\t"; +$usage .= "-L : list file includes line types instead of colors\n\t"; +$usage .= "-M : modify X-axis to FPs/query/Mb for a database of Mb\n\n"; if(scalar(@ARGV) != 5) { printf("$usage"); exit(1); } ($listfile, $key, $pdf, $do_errorbars, $main) = @ARGV; $n = 0; +if($do_errorbars && $lty_mode) { die "ERROR -L is incompatible with error bars"; } + if($replace_underscores) { $main =~ s/\_/ /g; } @R = (); @@ -34,128 +44,167 @@ $ylabel = "fractional coverage of positives"; #push(@R, "xlimit<-c(0.001,20)\n"); +if($perMb_mode) { + push(@R, "xlimit<-c(0.001,1.0)\n"); +} push(@R, "ylimit<-c(0,1)\n"); -push(@R, "pdf(\"$pdf\", height=8.5, width=11)\n"); - +if($paper_mode) { + push(@R, "postscript(\"$pdf\", height=5.5, width=9.3)\n"); +} +else { + push(@R, "pdf(\"$pdf\", height=8.5, width=11)\n"); +} open(LIST, $listfile) || die "ERROR, could not open $listfile"; @nametimemerA = (); while() { - chomp $_; - if(m/\S+/) { - @fields = split(' ', $_, 3); - if(scalar(@fields) != 3) { die "ERROR, format of $listfile invalid"; } - ($name, $root, $color) = @fields; - $n++; - @xA = (); - @yA = (); - @dy1A = (); - @dy2A = (); - $xyfile = $root . ".em" . $key . ".xy"; - $merfile = $root . ".em" . $key . ".mer"; - $sumfile = $root . ".sum"; - $timefile = $root . ".time"; - $sumfile = $root . ".em" . $key . ".sum"; - if(! -e $xyfile) { - $xyfile = $root . "/" . $xyfile; - if(! -e $xyfile) { - die "ERROR, $xyfile does not exist"; - } - } - if(! -e $merfile) { - $merfile = $root . "/" . $merfile; - if(! -e $merfile) { - die "ERROR, $merfile does not exist"; - } - } - if(! -e $sumfile) { - $sumfile = $root . "/" . $sumfile; - if(! -e $sumfile) { - die "ERROR, $sumfile does not exist"; - } - } - if(! -e $timefile) { - $timefile = $root . "/" . $timefile; - if(! -e $timefile) { - die "ERROR, $timefile does not exist"; - } - } + chomp $_; + if(m/\S+/) { + @fields = split(' ', $_, 3); + if(scalar(@fields) != 3) { die "ERROR, format of $listfile invalid"; } + ($name, $root, $color_or_lty) = @fields; + $n++; + @xA = (); + @yA = (); + @dy1A = (); + @dy2A = (); + $xyfile = $root . ".em" . $key . ".xy"; + $merfile = $root . ".em" . $key . ".mer"; + $sumfile = $root . ".sum"; + $timefile = $root . ".time"; + $sumfile = $root . ".em" . $key . ".sum"; + if(! -e $xyfile) { + $xyfile = $root . "/" . $xyfile; + if(! -e $xyfile) { + die "ERROR, $xyfile does not exist"; + } + } + if(! -e $merfile) { + $merfile = $root . "/" . $merfile; + if(! -e $merfile) { + die "ERROR, $merfile does not exist"; + } + } + if(! -e $sumfile) { + $sumfile = $root . "/" . $sumfile; + if(! -e $sumfile) { + die "ERROR, $sumfile does not exist"; + } + } + if(! -e $timefile) { + $timefile = $root . "/" . $timefile; + if(! -e $timefile) { + die "ERROR, $timefile does not exist"; + } + } - # process time file - open(TIME, $timefile) || die "ERROR, could not open time file $timefile"; - while($line =